Posted on 2010-02-09 14:58
Prayer 閱讀(390)
評論(0) 編輯 收藏 引用 所屬分類:
DB2
打開和關(guān)閉快照
缺省情況不打開 DB2 監(jiān)控,必須在連接或?qū)嵗墑e上進(jìn)行設(shè)置。有一系列監(jiān)視器開關(guān)來決定是否監(jiān)控某種數(shù)據(jù)元素。還預(yù)留了一個(gè)內(nèi)存堆,用于包含為監(jiān)控而存儲的信息。
1:在instance級別上設(shè)置監(jiān)視器開關(guān)
在實(shí)例級別上設(shè)置監(jiān)視器開關(guān)會影響連接到該實(shí)例中任何數(shù)據(jù)庫的所有用戶。
下面是監(jiān)視器開關(guān)
DFT_MON_STMT:語句監(jiān)視器(用于動(dòng)態(tài) SQL)
DFT_MON_TABLE:表監(jiān)視器
DFT_MON_LOCK:鎖監(jiān)視器
DFT_MON_BUFPOOL:緩沖池監(jiān)視器
DFT_MON_SORT:排序監(jiān)視器
DFT_MON_UOW:工作單元信息
DFT_MON_TIMESTAMP:跟蹤時(shí)間戳記信息
這些開關(guān)的值存儲在數(shù)據(jù)庫管理器配置信息中(都是聯(lián)機(jī)配置參數(shù))
例:db2 update dbm cfg using DFT_MON_LOCK ON
2:在應(yīng)用程序級別上設(shè)置監(jiān)視器開關(guān)
也可以在應(yīng)用程序級別上設(shè)置監(jiān)視器開關(guān);用這種方法設(shè)置開關(guān)只適用于特定的應(yīng)用程序。如果您在命令提示符或命令窗口中使用下面列出的方法,所做的更改將只適用于這個(gè)特定的提示符窗口。
開關(guān)名稱:
Bufferpool
Lock
Sort
Statement
Table
Timestamp
UOW
列出開關(guān):
db2 get monitor switches
設(shè)置開關(guān):
db2 update monitor switches using switchName [ON | OFF]
復(fù)位開關(guān)
可將監(jiān)視器開關(guān)的所有值復(fù)位成空值或 0:
db2 reset monitor [ALL | for database databaseName] [at dbpartitionnum partitionNum]
使用動(dòng)態(tài) SQL 快照來查找執(zhí)行速度較慢的 SQL
可以用它來查找數(shù)據(jù)庫中最耗時(shí)的 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
第二個(gè)示例查找平均執(zhí)行時(shí)間最長的五條 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