同一个SQL执行时快时慢

一个ETL JOB运行的一个SQL,每天定时跑,每次跑的时候都相当慢,几个小时出不来结果。但是第二天abort之后重跑就会很快。正常情况下db2batch测试,这个查询只要不到20秒时间。而且在快和慢的时候执行计划也是一样的。Access Plan:-----------       &n...显示全部
一个ETL JOB运行的一个SQL,每天定时跑,每次跑的时候都相当慢,几个小时出不来结果。但是第二天abort之后重跑就会很快。正常情况下db2batch测试,这个查询只要不到20秒时间。而且在快和慢的时候执行计划也是一样的。
Access Plan:
-----------
        Total Cost:             571921
        Query Degree:           1

                  Rows
                 RETURN
                 (   1)
                  Cost
                   I/O
                   |
               1.88828e+06
                 >HSJOIN
                 (   2)
                 571921
                 275231
          /--------+--------
    1.88828e+06             730836
      IXSCAN                MSJOIN
      (   3)                (   4)
      20170.8               551196
      8021.41               267209
        |                 /---+----
    1.88828e+06     3.15462e+06   0.231671
  INDEX: DWDM         TBSCAN       FILTER
XPKT_GLOBALSR_DIM    (   5)       (   
        Q4            385174       165175
                      205245       61964.2
                        |            |
                    3.15462e+06    940587
                      SORT         TBSCAN
                      (   6)       (   9)
                      385174       165175
                      205245       61964.2
                        |            |
                    3.15462e+06    940587
                      TBSCAN       SORT  
                      (   7)       (  10)
                      380723       165175
                      205245       61964.2
                        |            |
                     4.06e+06      940587
                  TABLE: DWDM      IXSCAN
                    T_OPPTY_DIM    (  11)
                        Q1         163918
                                   61964.2
                                     |
                                 1.88828e+06
                               INDEX: DWDM   
                             IDX010141456570000
                                     Q2

1) iostat,vmstat监控IO和内存都没问题。
2) user CPU很高,整个CPU利用率将近100%
3) 快照发现row fetch相当慢,几乎是几秒几百条数据的样子。

这种情况出现可能的原因是?
如何监控并找出问题?

DB2 9.1 + AIX
Thanks

附件:

附件图标snapagent.log (29.27 KB)

附件图标dynamic.log (103.13 KB)

附件图标snapagent.log (21.01 KB)

附件图标db2trc.fmt.txt (9.71 MB)

收起
参与136

查看其它 132 个回答yyt030的回答

yyt030yyt030系统分析师SHJT
收集下涉及到的表的统计信息和磁盘碎片。
银行 · 2012-04-25
浏览973

回答者

yyt030
系统分析师SHJT
擅长领域: 数据库服务器国产数据库

yyt030 最近回答过的问题

回答状态

  • 发布时间:2012-04-25
  • 关注会员:1 人
  • 回答浏览:973
  • X社区推广