Oracle性能分析與優化
來源:文萃谷 2.18W
一、何時考慮性能的問題。
考慮性能的問題應該貫穿於整個系統建設的各個階段中:系統設計、數據庫設計、代碼開發、系統運維。
1.系統設計階段:
系統架構方面:二層、三層、多層
系統類型:OLAP——生成報表等,主要考慮海量數據的處理速度
OLTP——主要考慮內存(cache)、併發、並行等
系統生命周期中系統能力的估算:併發數、查詢的.響應時間等。負面例子:2008北京奧運會訂票系統崩潰。
2.數據庫設計階段,着重考慮數據庫對象的類型和屬性:
分區。
索引及其類型(OLTP,一般用B-Tree;OLAP,一般考慮用Bitmap或Text索引)。
並行。
其它的一些對象屬性(ASSM、併發屬性)。
內存相關參數。
併發相關參數。
I/O相關參數。
數據庫架構(單節點、RAC、分佈式)。
硬件性能(CPU、內存等)。
3.高效的SQL與變量綁定(OLTP)
誤區:不恰當的使用Hint:強制使用索引、強制設定驅動表、強制優化器模式
4.對象類型:屬性、參數的修改
二、DBA應該參與到系統建設的各個階段中,開發人員應儘可能地考慮性能問題。
三、優化的內容:
1.參數:OLTP:內存:SGA、PGA
並行:PROCESSES、SESSIONS
2.對象屬性:分區、並行
3.索引類型:B-Tree、Bitmap、Text
4.高效的SQL
執行計劃
6.對錶進行分析:直方圖,DBMS_STATS包
四、優化工具
_Trace
2.10046事件
3.性能視圖,如:V$SQL、V$SESSION、V$LOCK、V$SESSION_LONGOPS
4.10053事件,將顯示Oracle執行計劃中的所有詳細操作
5.優化工具:Hint—— 優化器模式
訪問路徑
表連接順序
併發方式
Statspack(AWR)報告、ASH報告