db2 性能查看top sql

這篇文章是對以前有篇db2 v9的簡化更新,整體仍是以爲DB2TOP比較好用直觀,不過須要導出SQL時,或自動化腳本時,仍是建議執行SQL。
SYSIBMADM的SCHEMA下有不少幫助下的工具視圖,你們有興趣能夠多瞭解一下。這裏只是列舉了幾個而已。
(注意:如下查詢須要採用數據庫管理員的權限用戶執行)
 
和oracle的top sql對應的是sysibmadm.top_dynamic_sql,如下的視圖所在的模式都是sysibmadm
一、APPL_PERFORMANCE (DB2 V9 name APPLICATION_PERFORMANCE) :    標識可能正在執行大型表掃描操做的應用程序:  select AGENT_ID, PERCENT_ROWS_SELECTED from SYSIBMADM.APPL_PERFORMANCE; PERCENT_ROWS_SELECTED 值顯示返回給應用程序的行數。 二、LONG_RUNNING_SQL : 標識當前正在執行的運行時間最長的查詢:  select * from SYSIBMADM.LONG_RUNNING_SQL; order by ELAPSED_TIME_MIN desc fetch first 5 rows only; 經過使用此視圖,她能夠肯定這些查詢已運行的時間長度以及這些查詢的狀態。若是某個查詢已執行了很長時間而且正在等待鎖,她就能夠使用對特定代理程序標識執行查詢的 LOCKWAITS 或 LOCK_HELD 管理視圖來進行進一步調查。LONG_RUNNING_SQL 視圖還會指出正在執行的語句並容許她標識可能有問題的 SQL。 三、QUERY_PREP_COST : 對已肯定有問題的查詢進行故障診斷。此視圖能夠指出查詢的運行頻率以及這些查詢中每一個查詢的平均執行時間: select NUM_EXECUTIONS, AVERAGE_EXECUTION_TIME_S, PREP_TIME_PERCENT from SYSIBMADM.QUERY_PREP_COST order by NUM_EXECUTIONS desc; 查詢時耗用的時間在查詢執行時間中所佔的百分比。若是編譯和優化查詢時耗用的時間幾乎與查詢的執行時間同樣長,建議該查詢的全部者更改用於該查詢的優化類。下降優化類能夠使該查詢更快地完成優化,從而更快地返回結果。可是,若是某個查詢須要至關長的時間來進行準備,但要執行數千次(而沒必要再次進行準備),則更改優化類並不能提升查詢性能。 四、TOP_DYNAMIC_SQL : 標識執行頻率最高、運行時間最長和排序次數最多的動態 SQL 語句。有了此信息,Jessie 在進行 SQL 調整工做時就能夠把注意力放在表明某些最大資源使用者的查詢上。 select * from SYSIBMADM.TOP_DYNAMIC_SQL order by NUM_EXECUTIONS desc fetch first 5 rows only; select * from TOP_DYNAMIC_SQL order by AVERAGE_EXECUTION_TIME_S  desc fetch first 5 rows only; select STMT_SORTS, SORTS_PER_EXECUTION, substr(STMT_TEXT,1,60) as STMT_TEXT from TOP_DYNAMIC_SQL order by STMT_SORTS desc fetch first 5 rows only;
相關文章
相關標籤/搜索