Oracle Statspack效能診斷工具

2021-04-13 09:12:23 字數 2631 閱讀 7101

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...

效能監控診斷

使用者響應時間 伺服器響應時間 網路時間 除此以外,系統的可靠性 穩定性,也是需要考慮的。系統管理員可能經常會遇到系統不穩定,響應速度慢等問題。系統完成一次請求或響應任務時,還與硬體裝置 系統設計 網路拓撲圖 內部網路連線裝置如交換機 路由器等接入裝置 以及路由的處理策略,網路線路等多方面有關。任何...