<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    Statspack學習(二).基本操作
    ?
    ??? 今天來了解一下statspack的使用方法。其實這玩意的啟動、刪除都很方便,因為有Oracle提供了非常便于操作的腳本,所以這方面就不再多說了,看看下面的幾個腳本就明白了。當然具體內部的機制估計就麻煩了,這個普通情況下也不需要我們去了解,除非想專門研究Oracle的系統調優。
    ?
    一、設定自動執行
    ?
    ??? 修改spauto.sql腳本來設定自動執行任務。
    ?
    ??? 腳本主要內容如下:

    spool spauto.lis
    ?
    variable jobno number;
    variable instno number;
    begin
    ? select instance_number into :instno from v$instance;
    ? dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);
    ? commit;
    end;
    /
    ?
    select job, next_date, next_sec
    ? from user_jobs
    where job = :jobno;
    ?
    spool off;
    ?
    ??? 主要是修改執行job中的間隔時間,默認的是每個小時進行執行一次采樣,按照實際需要進行采樣間隔時間的設置。對于一些特殊的環境可以采用每30分鐘采樣,但是不推薦更短的間隔時間,因為statspack執行本身需要消耗資源,采樣間隔太短會對系統性能造成比較大的影響。以下是執行腳本:
    ?
    SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spauto.sql;

    PL/SQL procedure successfully completed
    instno
    ---------
    1
    jobno
    ---------
    21
    ?
    Job number for automated statistics collection for this instance
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Note that this job number is needed when modifying or removing
    the job:
    jobno
    ---------
    21
    ?
    Job queue process
    ~~~~~~~~~~~~~~~~~
    Below is the current setting of the job_queue_processes init.ora
    parameter - the value for this parameter must be greater
    than 0 to use automatic statistics gathering:
    ?
    NAME???????????????????????????????? TYPE??????? VALUE
    ------------------------------------ ----------- ---------------
    job_queue_processes????????????????? integer???? 10
    ?
    ?
    Next scheduled run
    ~~~~~~~~~~~~~~~~~~
    The next scheduled run for this job is:
    ?
    ?????? JOB NEXT_DATE?? NEXT_SEC
    ---------- ----------- ----------------
    ??????? 21 2009-2-22 1 12:00:00
    jobno
    ---------
    21
    ?
    ?
    二、取消自動執行計劃
    ?
    ??? 取消自動執行計劃只需要移除已建的job即可。
    ?
    ??? SQL> select job,last_date,next_date,interval from user_jobs where log_user='PERFSTAT';
    ?
    ?????????? JOB LAST_DATE????? NEXT_DATE????? INTERVAL
    ??? ---------- -------------- -------------- ----------------------------
    ??????????? 23??????????????? 2009-2-22????? trunc(SYSDATE+1/24,'HH')
    ??? SQL> execute dbms_job.remove('23');
    ?
    ??? PL/SQL procedure successfully completed
    ?
    ??? 注意在完成采樣報告之后一定要記得取消執行計劃,否則Statspack執行一周的數據量是驚人的,嚴重的會造成宕機。
    ?
    ?
    三、生成分析報告
    ?
    ??? 使用spreport.sql腳本來生成分析報告。
    ???
    ??? SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\spreport.sql;
    ??? ... ...
    ??? Enter value for begin_snap:1
    ??? Enter value for end_snap:3
    ??? Enter value for report_name:test
    ??? ... ...
    ?
    ??? 會在當前目錄下生成test.lst的report文檔
    ?
    ??? 注意:選取的兩個snap不能跨越一次停機,否則報錯:
    ??? ORA-20200: The instance was shutdown between snapshots 1 and 21
    ??? ORA-06512: 在 line 49
    ?
    ?
    四、刪除歷史數據
    ?
    ??? 在stats$snapshot表中查找所有的snap序號:
    ?
    ??? SQL> select max(snap_id) from stats$snapshot;
    ?
    ??? MAX(SNAP_ID)
    ??? ------------
    ????????????? 21
    ?
    ??? 在stats$snapshot表中刪除數據后,所有生成的數據會相應得自動刪除完成。
    ?
    ??? SQL> delete from stats$snapshot where snap_id <= 21;
    ?
    ??? 8 rows deleted.
    ?
    ?
    ??? 另外oracle還提供了一個sptrunc.sql的腳本,用以清空statspack相關的所有系統表:
    ?
    truncate table STATS$FILESTATXS;
    truncate table STATS$TEMPSTATXS;
    truncate table STATS$LATCH;
    truncate table STATS$LATCH_CHILDREN;
    truncate table STATS$LATCH_MISSES_SUMMARY;
    truncate table STATS$LATCH_PARENT;
    truncate table STATS$LIBRARYCACHE;
    truncate table STATS$BUFFER_POOL_STATISTICS;
    truncate table STATS$ROLLSTAT;
    truncate table STATS$ROWCACHE_SUMMARY;
    truncate table STATS$SGA;
    truncate table STATS$SGASTAT;
    truncate table STATS$SYSSTAT;
    truncate table STATS$SESSTAT;
    truncate table STATS$SYSTEM_EVENT;
    truncate table STATS$SESSION_EVENT;
    truncate table STATS$BG_EVENT_SUMMARY;
    truncate table STATS$WAITSTAT;
    truncate table STATS$ENQUEUE_STATISTICS;
    truncate table STATS$SQL_SUMMARY;
    truncate table STATS$SQL_STATISTICS;
    truncate table STATS$SQLTEXT;
    truncate table STATS$PARAMETER;
    truncate table STATS$RESOURCE_LIMIT;
    truncate table STATS$DLM_MISC;
    truncate table STATS$UNDOSTAT;
    truncate table STATS$SQL_PLAN;
    truncate table STATS$SQL_PLAN_USAGE;
    truncate table STATS$SEG_STAT;
    truncate table STATS$SEG_STAT_OBJ;
    truncate table STATS$DB_CACHE_ADVICE;
    truncate table STATS$PGASTAT;
    truncate table STATS$INSTANCE_RECOVERY;
    truncate table STATS$JAVA_POOL_ADVICE;
    truncate table STATS$THREAD;
    truncate table STATS$CR_BLOCK_SERVER;
    truncate table STATS$CURRENT_BLOCK_SERVER;
    truncate table STATS$INSTANCE_CACHE_TRANSFER;
    truncate table STATS$FILE_HISTOGRAM;
    truncate table STATS$TEMP_HISTOGRAM;
    truncate table STATS$EVENT_HISTOGRAM;
    truncate table STATS$TIME_MODEL_STATNAME;
    truncate table STATS$SYS_TIME_MODEL;
    truncate table STATS$SESS_TIME_MODEL;
    truncate table STATS$STREAMS_CAPTURE;
    truncate table STATS$STREAMS_APPLY_SUM;
    truncate table STATS$PROPAGATION_SENDER;
    truncate table STATS$PROPAGATION_RECEIVER;
    truncate table STATS$BUFFERED_QUEUES;
    truncate table STATS$BUFFERED_SUBSCRIBERS;
    truncate table STATS$RULE_SET;
    truncate table STATS$OSSTAT;
    truncate table STATS$OSSTATNAME;
    truncate table STATS$PROCESS_ROLLUP;
    truncate table STATS$PROCESS_MEMORY_ROLLUP;
    truncate table STATS$STREAMS_POOL_ADVICE;
    truncate table STATS$SGA_TARGET_ADVICE;
    truncate table STATS$MUTEX_SLEEP;
    truncate table STATS$DYNAMIC_REMASTER_STATS;
    ?
    delete from STATS$SNAPSHOT;
    delete from STATS$DATABASE_INSTANCE;
    ?
    commit;
    ?
    ??? 當存在大量的數據時,使用delete是比較慢的,可以嘗試使用sptrunc.sql腳本
    ?
    ?
    posted on 2009-01-18 21:13 decode360 閱讀(416) 評論(0)  編輯  收藏 所屬分類: 10.DB_Tools
    主站蜘蛛池模板: 亚洲精品成人在线| 亚洲成人免费网站| 182tv免费观看在线视频| 亚洲成年网站在线观看| 中文字幕不卡亚洲| 国产精品1024永久免费视频| 黄页视频在线观看免费| 亚洲午夜久久影院| 免费乱理伦在线播放| 57pao国产成视频免费播放| 亚洲日韩看片无码电影| 亚洲国产AV无码专区亚洲AV| 德国女人一级毛片免费| 免费一级毛片无毒不卡| 国产精品亚洲色婷婷99久久精品| 亚洲av鲁丝一区二区三区| 免费国产不卡午夜福在线| 亚洲成人免费电影| 国产福利免费视频| 亚洲变态另类一区二区三区| 少妇中文字幕乱码亚洲影视| 亚洲国产成人乱码精品女人久久久不卡 | 免费一区二区视频| 亚洲最大免费视频网| 国产黄在线观看免费观看不卡| 中文字幕 亚洲 有码 在线| 久久精品国产69国产精品亚洲| 日本一区免费电影| 999久久久免费精品国产| a级大片免费观看| 免费的黄色的网站| 日韩亚洲国产综合高清| 亚洲精品视频在线| 亚洲欧洲∨国产一区二区三区| 国产网站免费观看| 青春禁区视频在线观看直播免费 | 免费看一级毛片在线观看精品视频| 亚洲成综合人影院在院播放| 国产亚洲av片在线观看播放 | 亚洲jjzzjjzz在线观看| 亚洲福利视频导航|