db2中sysibmadm.top_dynamic_sql表的数据刷新周期如何?如何查询执行耗时最长的sql语句?

问题背景:db2数据库自带了很多数据库执行情况的快照监控。可以监控执行时间最长的sql语句,排序最多的sql语句等。比如下面是通过sysibmadm.top_dynamic_sql表查询平均执行时间最长的前10条的sql语句db2  "select substr(stmt_text,1,500) as stmt_text,average_execution_...显示全部

问题背景:db2数据库自带了很多数据库执行情况的快照监控。可以监控执行时间最长的sql语句,排序最多的sql语句等。比如下面是通过sysibmadm.top_dynamic_sql表查询平均执行时间最长的前10条的sql语句
db2  "select substr(stmt_text,1,500) as stmt_text,average_execution_time_s,num_executions from sysibmadm.top_dynamic_sql order by average_execution_time_s desc fetch first 10 rows only"

我的问题是:sysibmadm.top_dynamic_sql这张表里的数据,更新统计周期怎么约定的,哪些参数因素影响到周期统计?也就是说比如我查询出来的前10条语句,是1小时内最长,还是1天内最长的语句?

问题案例:
以上sql语句我测试环境,第一次查询的耗时最长sql语句,耗时50秒,隔5分钟再去查询,之前的50秒语句就不见了,换成了别的语句。但生产环境,早上10点钟每隔5分钟,去查询耗时最长的sql语句,都是前一天晚上日终的相关sql语句。

收起
参与21

查看其它 2 个回答anikikong的回答

anikikonganikikong  数据库运维工程师 , 中国民生银行

如果要分析某个时间段内的数据库事务性能,建议抓两次mon_get_pkg_cache_stmt,然后累计值想减,得到所有这段时间的sql运行情况。分析基于官网time-spent moniter元素。很全很强大。

银行 · 2017-10-11

回答者

anikikong
数据库运维工程师中国民生银行
擅长领域: 数据库灾备双活

anikikong 最近回答过的问题

回答状态

  • 发布时间:2017-10-11
  • 关注会员:4 人
  • 回答浏览:3507
  • X社区推广