windy
作者windy·2013-02-18 22:29
数据库管理员·KSRCB

第9章 DB2性能监控

字数 2878阅读 2965评论 1赞 0
9.1.快照监视器(Snapshot monintor)
  9.1.1 两种方法设置监视器的开关:
db2 update dbm cfg using DFT_MON_SORT on;
db2 update monintor switches SORT on;      
组别所提供的信息监视器开关DBM参数
排序所用堆的数目、溢出、排序性能SORTDFT_MON_SORT
锁定保持锁定的数目、死锁的数目LOCKDFT_MON_LOCK
测量活动(读行,写行)TABLEDFT_MON_TABLE
缓冲区读和写的次数,所用时间BUFFERPOOLDFT_MON_BUFPOOL
工作单元开始时间、结束时间、完成时间UOWDFT_MON_UOW
SQL语句开始时间、结束时间、语句标识STATEMENTDFT_MON_STMP
  9.1.2 GET SNAPSHOT 命令的句法
db2 get snapshot for dbm;
db2 get snapshot for database on dbname;
db2 get snapshot for tablespaces/bufferpools/tables/locks/applications/dynamic sql on dbname;
   9.1.3 使用表函数捕获快照:
db2 select * from Table ([FunctionName]([DBName],[PartitionNum]) )AS [CorrelationName]
db2 "select * from Table (SNAPSHOT_LOCK(maxdb71,-1)) AS T";

9.2 DB2PD
db2pd是用于监视各种DB2数据库活动以及故障排除的监控工具,ta的运行速度比较快,因为它不需要获取任何锁,并且在引擎资源以外运行(这意味着它甚至能在一个挂起的引擎上工作)。
9.2.1 监控DB2版本和系统信息:db2pd -version -osinfo
        分析锁等待情形所需的带有选项的单个db2pd调用:     
db2pd -db maxdb71 -locks wait showlocks -transactions -agents -applications -dynamic -file db2pd.out -repeat 15 40
     -wait:如果指定此选项,db2pd只会显示事物当前正在等待的锁,以及对等待情形负责的锁;
     -showlocks:用于将锁名称扩展成有意义的解释;
     -transactions:用于将事务句柄映射到应用程序;
     -agents:用于获得代表应用程序运行的代理的信息;
     -applications:用于获得每个应用程序的更多信息;
     -dynamic:该选项显示数据库动态语句缓存的内容;
     -file:表明叫db2pd的输出写入的文件中;
     -repeat:重复执行的间隔时间和次数,这里是每15秒执行一次,执行40次。
9.2.2 每当出现锁超时时启动db2cos脚本:db2pdcfg -catch locktimeout count=1 也可以使用SQL错误码和原因码db2pdcfg -catch 911,68 count=1
     -catch:表明自动调用db2cos脚本的故障和事件。
     db2pdcfg -catch clear
9.2.3 使用db2diag实用程序过滤db2diag.log文件:db2diag -g funcname:=pdErrorCatch

9.3 事件监视器(Event Monitor)
使用事件监视器的方法:
(1)创建一个事件监视器,写入文件:create event monitor evmname for eventtype write to  file 'directory'
          create event monitor SQLCOST for deadlocks,statements write to '/db2db/event'
     如果写入表的话为create event monitor SQLCOST for deadlocks write to TABLE.
(2)激活事件监视器:db2 "set event monitor SQLCOST state=1" ;
(3)运行要监视的应用程序;
(4)取消激活事件监视器:db2 "set event monitor SQLCOST state=0",db2 terminate;
(5)使用DB2提供的工具db2evmon工具格式化事件监视器的原始数据:
          db2evmon -db dbname -evm SQLCOST > sqltrace.txt
(6)浏览整个已格式化的文件,寻找显著大的成本数:more sqltrace.txt

9.4 db2mtrk 是用于在数据库中进行内存跟踪的工具,可以用于查看实例、数据库、代理进程当前对内存的使用情况。
     dbmtrk -d -i -p -m -w -r interval count -v -h 
     -p:显示代理进程专业的内存使用率;
     -m:显示最大的内存使用上线;
     -w:显示使用过程中内存达到的最大值,即watermark;
     -r:repeat 用于重复执行 interval值重复执行的间隔,count 次数 例如 -r 1 5指的是执行五次每次间隔1秒。
     -v:详细输出
     -h:help
9.5 活动监视器(Activity Monitor)图形化的
     它使用各种SQL函数和过程获得性能数据,对系统进行分析。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论1 条评论

huiyzouhuiyzou项目经理上海翰明
2013-03-28 09:18
谢谢分享,非常有用的调优工具
Ctrl+Enter 发表

作者其他文章

  • 集中式和分布式
    评论 0 · 赞 2
  • DB2隔离级别
    评论 0 · 赞 0
  • 抓取SQL语句的执行计划
    评论 0 · 赞 0
  • 如何恢复误删除的表
    评论 12 · 赞 0
  • 第8章 故障诊断
    评论 0 · 赞 0
  • 相关文章

    相关问题

    相关资料

    X社区推广