簡易操作statspack

tolywang發表於2007-10-26

1. 修改引數:

alter system set job_queue_processes = 6 scope=both; (job執行需要這個引數非0)

alter system set timed_statistics = true; ( 如果擔心影響效能,收集完之後關閉 )

2. 建立statspack專用空間.

SQL> create tablespace perfstat datafile '/data/dell/perfstat.dbf' size 500M extent management local;


3. $cd $ORACLE_HOME/rdbms/admin/

SQL>@spcreate

default_tablespace : perfstat

Using perfstat for the default tablespace

Specify PERFSTAT user's temporary tablespace

temporary_tablespace : temp

4. 所有執行完成後檢視 spcpkg.lis,如果發現錯誤, 可以執行spdrop.sql來刪除這些物件. 然後重新執行.

5. sysdba許可權的使用者登入後執行 statspack.snap , SQL>@spreport.sql 得出兩次執行的時間的報告 .

SQL>execute statspack.snap

PL/SQL procedure successfully completed.

.....

SQL>execute statspack.snap

PL/SQL procedure successfully completed.

SQL>@spreport.sql (收集上面兩個時間點的資訊)

6. 如果需要長期收集定期資料,可以使用job定時執行.

$ORACLE_HOME/rdbms/admin/ spatuo.sql .

內容:

dbms_job.submit(:jobno, 'statspack.snap;',

trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);

可以修改執行時間, 然後 SQL>@spauto.sql .

7. SQL>@spreport.sql 執行可以得出任何收集時間之內的報告. (可能要輸入兩個間隔job id)

8. 完成取樣,要及時清理掉Job ,不然會生成很多資料, 比較危險.

SQL> select job,log_user,priv_user,last_date,next_date,interval from user_jobs;

JOB LOG_USERLAST_DATENEXT_DATEINTERVAL

---------- ----------------------------------- ------------------------------ -----------

22 PERFSTAT 2002-12-5:14:33:26 2002-12-5 14:43:00 trunc(SYSDATE+1/144,'MI')

執行 SQL> execute dbms_job.remove('22') ; 刪除job .

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84972/,如需轉載,請註明出處,否則將追究法律責任。

相關文章