ORACLE調優策略參考:
工具採用了STATSPACK
安裝STATSPACK
建立一個120M左右的資料表空間,如perfstat
在伺服器端用sqlplus(登入到sys as sysdba使用者)運行
@?/rdbms/admin/spcreate
運行收集的方式
exec statspack.snap
隔一段時間後再運行一遍,即可產生2個SNAP
產生REPORT
@?/rdbms/admin/spreport
按照要求輸入開始和結束的ID,即前面2次說產生的ID
清除過多資料的方法
@?/rdbms/admin/sppurge
OK,查看REPORT所產生的LST檔案,可根據下面的參數進行調優判斷
效率方面:
1 Buffer Nowait
數值大(>95%)表示資料緩衝區足夠大
否則需要增加資料緩衝區的大小,或調整資料檔案IO的速度
2 Redo Nowait
資料大(>99%)表示log_buffer足夠
否則調整log_buffer的大小
3 Buffer Hit
足夠大(>95%)表示命中率較高
否則可以調整資料緩衝區的大小
4 In-memory Sort
數字大(>95%)表示大部分資料在記憶體中進行排序
否則調整sort_area_size的值,或pga_aggregate_target的值
5 Library Hit
資料大(>95%)表示SQL的命中率較高
否則需要調整shared_pool_size的值,或者需要調整SQL,使用bind variable
6 Soft Parse
數字大(>95%)表示SQL的緩衝情況比較好
否則需要增加shared_pool_size的值
7 Execute to parse
=100 * (1 - Parses/Executions)
資料大表示重新解釋的次數較多,在snapshot較多的系統中值可能很低,因為完全重新整理後很多SQL語句執行時需要重新解釋,動態創
建表或索引等也會增加Parse的次數.
8 Latch Hit
數字大(>99%)表示內部鎖比較好
否則需要查詢Oracle有關版本的bug說明
9 Parse CPU to Parse elapsed
做SQL解釋時CPU的利用率
資料越大表示解釋的效率高
10 Non-Parse CPU
表示用於SQL Parse的CPU的比重
數值越大越好
事件方面:
1 Buffer Busy Wait
訪問的塊正在讀取中,其他進程正在將資料讀到Cache中
訪問的塊正在修改中,其他進程正在修改Cache中的資料
調整思路:將資料檔案放在讀取速度更快的裝置上
2 Checkpoint Completed
等待Checkpoint操作結束
調整思路:,減小一些log buffer的大小,增加Checkpoint的頻率,將log檔案放在更快的磁帶裝置上,如RAID
3 Control File Parallel Write
等待向所有的控制檔案寫資料
調整思路:減少control file的個數;將不同control file分布到不同的磁碟機
4 Control File Sequential Read
從Control File中讀取資訊
調整思路:將Control File放在比較閒置磁碟上;將Control File放在速度更快的磁碟上
5 DB File Scattered Read
讀取大量的資料區塊到Cache中
調整思路:調整大表上的索引,收集更集統計資訊
6 DB File Sequential Read
一般指讀取索引的資料
調整思路:調整索引的設計;Rebuild索引,提高索引效率
7 Undo Segment tx slot
等待獲得復原段
調整思路: 增加復原段的個數;增加復原段的初始extent的數量