statspack是oracle強大的狀態收集及效能診斷工具,是dba及資料庫相關人員進行問題診斷的重要手段,是dbad的一大利器
1、系統引數設定
先查詢系統引數
show parameter job_queue_processes
show parameter timed_statistics
如果值分別為0和false,則做如下更改
alter system set job_queue_processes = 10;
alter system set timed_statistics = true;
timed_statistics設定為true對系統的效能有一定的影響,再資料取樣結束後,把該值設定為false,該引數收集的時間資訊儲存在v$sesstats和v$sysstats等動態效能檢視中
2、安裝statspack
查詢資料庫例項名和版本
select instance_name,host_name,version,startup_time from v$instance;
查詢物理檔名及路徑
select file_name from dba_data_files;
//建立表空間
create tablespace statspack datafile 'e:/oracle/oradata/db2/statspack01.dbf' size 500m
安裝 @spcreate
按照提示輸入表空間,密碼,臨時表空間等,如果出現錯誤會生成乙個spcpkg.lis錯誤檔案,開啟該檔案可以看到詳細的錯誤資訊,並重新執行@spdrop.sql來刪除剛才建立的物件,有時候執行@spcreate會提示找不到檔案,可以輸入完整路徑,如:@e:/oracle/ora90/rdbms/admin/spcreate.sql
至此,statspack就安裝完成了
3、測試安裝好的 statspack
執行stataspack.snap可以產生系統快照,執行兩次,然後執行@spreport.sql就可以生成乙個基於兩個時間點的報告
execute statspack.snap
隔一段時間再執行一次
execute statspack.snap
執行@spreport.sql就可以生成這段時間內的報告
statspack收集資料的級別,statspack一共有三個級別,預設值是5
level0:一般效能統計。包括等待事件、系統事件、系統統計、回滾段統計、行快取、sga、會話、鎖、緩衝統計等
level5:增加sql語句
level10:增加字鎖統計
收集資料級別
可通過以下語句指定收集級別
execute statspack.snap(i_snap_level=>0,i_modify_parameter=>'true');
如果只是想本次改變收集級別,可以省略i_modify_parameter=>'true'
execute statspack.snap(i_snap_level=>0);
"=>"是等於的意思,而非大於等於0級別的意思
快照門限
execute_th sql語句執行的數量,預設是100
disk_reads_th sql語句執行的磁碟讀入數量,預設是1000
parse_calls_th sql語句執行的解析呼叫的數量,預設是1000
buffer_gets_th sql語句執行的緩衝區獲取的數量,預設是10000
例如:
execute statspack.modify_statspack_parameter(i_buffer_gets_th=>100000,i_disk_reads_th=>10000);
4、規劃自動任務
可用@spauto.sql來定義自動任務
這個job裡定義了收集資料的時間間隔
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;
1/24 每小時執行一次 格式:hh
1/48 每半小時執行一次 格式:mi
1/144 每十分鐘執行一次 格式:mi
1/288 每五分鐘執行一次 格式:mi
執行後可用下列語句檢視任務執行的時間
select job, next_date, next_sec from user_jobs where job = :jobno;
5、移除定時任務
execute dbms_job.remove('1');
其中1為作業佇列號
6、刪除歷史資料
刪除stats$snapshot表中的相應資料,其他表中的資料也會相應的級連刪除
select max(snap_id) from stats$snapshot;
delete from stats$snapshot where snap_id <= 4;
例舉在診斷Oracle效能問題時,常用的工具 方法
例舉在診斷oracle效能問題時,常用的工具 方法 解答 1 簡單一點的可以用toad及dbartisan這樣的工具。2 純做效能監測,比較出色的有spolight和emc的i3,這兩個軟體都比較貴。3 一些網管系統這方面也不錯,如hp的openview。不過定製起來不太容易,且很貴。4 不用花錢又...
診斷oracle效能
檢視session的運 況 select v.blocking session,v.sid,v.sql id v.event,v.row wait obj v.row wait file v.row wait block v.row wait row v.from gv session v wher...
效能監控診斷
使用者響應時間 伺服器響應時間 網路時間 除此以外,系統的可靠性 穩定性,也是需要考慮的。系統管理員可能經常會遇到系統不穩定,響應速度慢等問題。系統完成一次請求或響應任務時,還與硬體裝置 系統設計 網路拓撲圖 內部網路連線裝置如交換機 路由器等接入裝置 以及路由的處理策略,網路線路等多方面有關。任何...