創建一個 SQL Event Monitor寫入文件
db create event monitor SQLCOST for statements write to
激活事件監視器(確保有充足的可用磁盤空間)
db set event monitor SQLCOST state =
讓應用程序運行
取消激活事件監視器
db set event monitor SQLCOST state =
使用 DB 提供的 dbevmon 工具來格式化 SQL Event Monitor 原始數據(根據 SQL 吞吐率可能需要數百兆字節的可用磁盤空間)
dbevmon db DBNAME evm SQLCOST
sqltracetxt
浏覽整個已格式化的文件尋找顯著大的成本數(一個耗時的過程)
more sqltracetxt
對已格式化的文件進行更完整的分析該文件試圖標識唯一的語句(獨立於文字值)每個唯一語句的頻率(它出現的次數)和其總 CPU排序以及其它資源成本的總計如此徹底的分析在 分鐘的應用程序 SQL 活動樣本上可能要花一周或更多的時間
要減少確定高成本 SQL 語句所花的時間您可以考慮許多可用的信息來源
從技巧 務必要計算在每個事務中從每個表中讀取的行數如果產生的數字看上去很大那麼 DBA 可以在 SQL Event Monitor 格式化輸出中搜索有關的表名稱(這將縮小搜索范圍而且節省一些時間)這樣也許能夠找出有問題的語句 從 技巧 務必計算每個表空間的異步讀取百分比和物理 I/O 讀取率如果一個表空間的異步讀取百分比很高並遠遠超過平均的物理 I/O 讀取率那麼在此表空間中的一個或更多的表正在被掃描查詢目錄並找出哪些表被分配到可疑的表空間(每個表空間分配一個表提供最佳性能檢測)然後在 SQL Event Monitor 格式化輸出中搜索這些表這些也可能有助於縮小對高成本 SQL 語句的搜索范圍 嘗試觀察應用程序執行的每條 SQL 語句的 DB Explain 信息然而我發現高頻率低成本語句經常爭用機器容量和能力來提供期望的性能如果分析時間很短而且最大性能是關鍵的那麼請考慮使用供應商提供的工具(它們能夠快速自動化識別資源密集的 SQL 語句的過程) DatabaseGUYS Inc的 SQLGUY 工具提供精確實時且均衡的 SQL 語句的成本等級分析
[] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/DB2/201311/21954.html