系统集成db2 9.7

db2V9.7.4监控开关疑问

我要执行如下脚本#!/usr/bin/kshdbname=$tdbfilename=locksql.$(date+'%m%d%H%M%S')touch $filenameecho now,connect todatabase: $dbnamedb2 "connect to $dbname"db2 "update dbm cfg using DFT_MON_LOCK on DFT_MON_STMT on"db2 "update monitor switches using lock...显示全部
我要执行如下脚本
#!/usr/bin/ksh
dbname=$tdb
filename=locksql.$(date+'%m%d%H%M%S')
touch $filename
echo now,connect todatabase: $dbname
db2 "connect to $dbname"
db2 "update dbm cfg using DFT_MON_LOCK on DFT_MON_STMT on"
db2 "update monitor switches using lock ON sort ON bufferpool ON uow ON table ON statement ON"
echo now,finding the SQLs which made lockwait
db2 "select AGENT_ID,substr(STMT_TEXT,1,100) as statement,STMT_ELAPSED_TIME_MS from table(SNAAPSHOT_STATMENT('$dbname',-1)) as B where AGENT_ID in (select AGENT_ID_HOLDING_LK from table(SNAPSHOT_LOCKWAIT('dbname',-1)) as A order by LOCK_WAIT_START_TIME ASC FETCH FIRST 20 ROWS ONLY ) order by STMT_ELAPSED_TIME_MS DESC"
echo The SQLs have saved to the file $filename

请问:
1、脚本会话结束后,这些参数会自动恢复为OFF状态吗?
2、所资料说明,DFT_MON_STMT参数,对OLTP的性能影响是4%~8%,这个值,准确吗?
3、打开 monitor switches 中上述五个开关,是不是就可以对执行成本最高、运行时间最长、执行次数最多、排序次数最多、准备和预编译耗时最长、全表扫描等SQL进行监控,并可以相关系统对象中查询到结果?收起
参与7

查看其它 5 个回答id_taosicai的回答

id_taosicaiid_taosicai系统运维工程师软通动力
回复 2# sunyangnj


    太好了,真的很感谢“sunyangnj”的解答。受益非浅
但有点小疑问,希望再给解答一下。

1 但是由于你在这个命令之前没有显式附着attach to db2inst,
我不明白!执行本脚本,我肯定是要使用用户db2inst1,我通常都是connect dbName 或 db2 connect to sample或db2 connect to sample user tst1 using mypass这样的,您的意思是说,要使参数执行成功,需要db2 attach to db2inst1这样吗?这个以前没用过。

2.我确实是要在生产上核心系统中,打开这些开关,如您所说,这些监控开关是不需要思考的,必须全开
那么,DFT_MON_BUFFERPOOL(1~2%)、DFT_MON_SORT(1%)、DFT_MON_LOCK(1%)、DFT_MON_TABLE(<1%)、DFT_MON_UOW(1~5%)DFT_MON_STMT(4~8%),这样,加起来是6%~18%,这样的性能影响,是不是有点大?而且,开启这些开关,数据库启不是要实时监控这些语句?还是以多长的时间间隔,进行数据采样吗?
系统集成 · 2013-10-22
浏览800

回答者

id_taosicai
系统运维工程师软通动力
擅长领域: 数据库

id_taosicai 最近回答过的问题

回答状态

  • 发布时间:2013-10-22
  • 关注会员:1 人
  • 回答浏览:800
  • X社区推广