<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
    主站蜘蛛池模板: 99国产精品视频免费观看| a级毛片无码免费真人久久| 日韩精品极品视频在线观看免费| 亚洲最大AV网站在线观看| h片在线播放免费高清| 久久精品国产精品亚洲| 一级毛片一级毛片免费毛片| 亚洲av手机在线观看| 男人免费视频一区二区在线观看| 国产一级淫片免费播放电影| 免费看一级高潮毛片| 伊人久久综在合线亚洲91| 无码专区AAAAAA免费视频| 亚洲影视一区二区| 九九九精品成人免费视频| 亚洲av无码专区在线电影| 亚洲日本一区二区三区在线不卡| 国产免费牲交视频免费播放| 亚洲av无码片在线播放| 久草在视频免费福利| 福利片免费一区二区三区| 国产AV无码专区亚洲AV漫画 | 国产黄色片免费看| 久久噜噜噜久久亚洲va久| 在线看片韩国免费人成视频| 亚洲精华国产精华精华液| 亚洲毛片网址在线观看中文字幕| 西西人体免费视频| 亚洲中文无码av永久| 国产免费看插插插视频| 大地资源网高清在线观看免费| 亚洲精品国产成人| 国产一级特黄高清免费大片| 大地资源中文在线观看免费版 | 亚洲综合精品一二三区在线| 97无码免费人妻超级碰碰夜夜| 久久国产精品免费| 久久精品国产亚洲av麻豆图片| 国产成人高清亚洲| 大地资源免费更新在线播放| 久久精品免费大片国产大片|