同一个SQL在同一个DB上执行计划不一样,performance不一样

DB2 9.7 + AIX.+ 各表统计信息均为最新production环境,SQL是一个view的定义,白天死活跑不出来,到了晚上回家再跑,嘿,好了。看了下执行计划,同样一条SQL,同样的统计信息,执行计划竟然不一样(虽然cost差不多,但是时间上一个天上一个地下),请各位帮忙分析原因及解决方案。...显示全部

DB2 9.7 + AIX.+ 各表统计信息均为最新

production环境,SQL是一个view的定义,白天死活跑不出来,到了晚上回家再跑,嘿,好了。看了下执行计划,同样一条SQL,同样的统计信息,执行计划竟然不一样(虽然cost差不多,但是时间上一个天上一个地下),请各位帮忙分析原因及解决方案。

附件:

附件图标exfmt_better.txt (36.99 KB)

附件图标exfmt.txt (22.94 KB)

附件图标col_stat.txt (181.57 KB)

附件图标stats.txt (42.29 KB)

收起
参与21

查看其它 9 个回答drdb2的回答

drdb2drdb2系统工程师se

你的    Sort Heap size was changed from 296 to 1884

这是导致explain plan不同,后者有了better performance

互联网服务 · 2017-03-29
浏览3914
  • 当前设置是auto,我也曾经试着改成果2000,但是执行计划没有变
    2017-03-29
  • 296 到 1884 差比较大,这是为什么吧
    2017-03-30
  • duanzhihui  duanzhihui回复 drdb2
    昨天500多的时候我试过一次并没有出现performance的问题,而且SHEAPTHRES_SHR基本都在2000多,server的workload并不重。现在明显有问题的那个node(step12)应该用HSJOIN更好,而且表连接有两个=条件,为什么执行计划会选择做MSJOIN呢?
    2017-03-30

回答者

drdb2
系统工程师se

drdb2 最近回答过的问题

回答状态

  • 发布时间:2017-03-29
  • 关注会员:6 人
  • 回答浏览:3914
  • X社区推广