打開和關閉快照
缺省情況不打開 DB2 監控,必須在連接或實例級別上進行設置。有一系列監視器開關來決定是否監控某種數據元素。還預留了一個內存堆,用于包含為監控而存儲的信息。
1:在instance級別上設置監視器開關
在實例級別上設置監視器開關會影響連接到該實例中任何數據庫的所有用戶。
下面是監視器開關
DFT_MON_STMT:語句監視器(用于動態 SQL)
DFT_MON_TABLE:表監視器
DFT_MON_LOCK:鎖監視器
DFT_MON_BUFPOOL:緩沖池監視器
DFT_MON_SORT:排序監視器
DFT_MON_UOW:工作單元信息
DFT_MON_TIMESTAMP:跟蹤時間戳記信息
這些開關的值存儲在數據庫管理器配置信息中(都是聯機配置參數)
例:db2 update dbm cfg using DFT_MON_LOCK ON
2:在應用程序級別上設置監視器開關
也可以在應用程序級別上設置監視器開關;用這種方法設置開關只適用于特定的應用程序。如果您在命令提示符或命令窗口中使用下面列出的方法,所做的更改將只適用于這個特定的提示符窗口。
開關名稱:
Bufferpool
Lock
Sort
Statement
Table
Timestamp
UOW
列出開關:
db2 get monitor switches
設置開關:
db2 update monitor switches using switchName [ON | OFF]
復位開關
可將監視器開關的所有值復位成空值或 0:
db2 reset monitor [ALL | for database databaseName] [at dbpartitionnum partitionNum]
使用動態 SQL 快照來查找執行速度較慢的 SQL
可以用它來查找數據庫中最耗時的 SQL 語句:
SELECT stmt_text, total_exec_time, num_executions FROM TABLE( SNAPSHOT_DYN_SQL('DREW_DB', -1)) as dynSnapTab ORDER BY total_exec_time desc FETCH FIRST 1 ROW ONLY
第二個示例查找平均執行時間最長的五條 SQL 語句:
SELECT stmt_text, CASE WHEN num_executions = 0 THEN 0 ELSE (total_exec_time / num_executions) END avgExecTime,num_executions FROM TABLE( SNAPSHOT_DYN_SQL('DREW_DB', -1)) as dynSnapTab ORDER BY avgExecTime desc FETCH FIRST 5 ROWS ONLY
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
