Oracle統計資訊以及statspack怎麼使用

it-msxq發表於2011-03-26

資料庫工作
任務 計算系統某引數值的命中率
時間 2011-3-8
作業者 胡國青

顯示 命令 提示 說明
Show parameter timed 

Alter system set timed_statistics=FALSE; 平時不做系統統計時,把引數設定為假 消耗資源
select name, value from v$sysstat where name in('db block gets', 'consistent gets', 'physical reads');

select 1-('physical reads' / ('db blocks gets' + 'consistent gets')) hit from dual; logical reads='db blocks gets' + 'consistent gets' -緩衝區的 命中率低於80%需要加引數


select * from v$sgastat where pool='shared pool' and name='free memory';  sga統計資訊, 共享記憶體池是否夠用
 select count(distinct name) from v$event_name;  -事件
 select (sum(pins-reloads)) / sum(pins) "lib cache"  from v$librarycache;  跟解析語句有關係,結果儲存在記憶體,提取速度快 命中率大於99%最好,不然庫快取太小需要優化, pins總的命中數量  reloads沒有中的命中數量
 select(sum(gets-getmisses)) / sum(gets) hit from v$rowcache; 資料字典命中率 保持在85%以上

任務 Diagnostic & Tuning
時間 2011-3-8
作業者 胡國青

Maintenance  of  the  alert.log  file
日誌名稱 說明
Alter_SID.log 操作資訊、系統資訊記錄
Alter session set sql_trace = true;或
Dbms_system.set_sql_trace(ID號,子序列號,true[false]) 在會話級別對SQL命令跟蹤下來生成跟蹤檔案,由catprec.sql建立這個包,  使用tkprof產生一個可讀性報表
Statspack
1. Installaction of statspack using the spcreate.sql script
2. collection of statistics execute statspack.snap
3. Automatic collection of statistics using the spauto.sql
4. Product a report using the spreport.sql script
5. To collect timing information, set timed_statistics = TRUE;


Show parameter timed_st 

Alter system set timd_statistics = TRUE scope = both;
<1>select file_name from dba_data_files
<2>create tablespace perfstat datafile ‘/u01/perfstat01.dbf’size 500M extent management local extent space management auto;
<3>create temporary tablespace perftemp tempfile ‘/u01/perftemp01.dbf’size 100M ;
<4>以DBA許可權,執行[sql>@path/spcreate.sql];  其中有spcpkg.lis檔案可以看看  哈哈
<5>connect perfstat/perfstat
<6>execute statspack.snap     ----拍照,對系統資訊的統計
<7>執行[sql>@path/spauto.sql]; ---自動拍照,將trunc(sysdate+1/24, ‘HH’),這個指令碼中有兩個24可改成144,隔10分鐘拍一次照;也可以不該
<8>select job, log_user, next_date, interval from user_jobs; 查詢結果中有個 21;[按照個人設定的,這是我個人設定的]
<9> execute statspack.snap     ----再拍照
<10>select snap_id from stats$snapshot; ----拍照資訊情況
<11> execute dbms_job_remove(21)   ----移除查詢結果的21;
<12>select snap_id from stats$snapshot; ----拍照資訊情況
<13> execute statspack.snap     ----再次拍照
<14> @path/spreport.sql 生成報告指令碼 其中 begin_snap值: 1  end_snap值:3 因為一共拍了三次照;report_name:/u01/chain.txt
<15> select snap_id from stats$snapshot; ----拍照資訊情況
看看生成的chain.txt指令碼  很重要
最後:show parameter cursor_sharing: ---關於執行SQL語句是否完全匹配[大小寫字母等]
Alter system set cursor_sharing = similar scope = both; ---會使用繫結變數,利用相似的去擴大命中率
<16> select snap_id, snap_time from stats$snapshot; ----拍照資訊情況
<17>以DBA許可權: 執行 @path/spdrop.sql 刪除

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

相關文章