互联网服务sql优化db2 9.7

过滤条件条件不一样,执行计划却不一样,效率相差近4倍

AIX,9.7SQL应该是Cognos生成的,对于EU的数据(附件里的第一个SQL),执行时间大概为5分钟。对于Japan的数据(第二个SQL),数据量变少了,但是执行时间是EU的三倍多,要17分钟左右。附件是两个SQL以及其对应的执行计划,各位大侠帮忙分析一下。谢谢!...显示全部
AIX,9.7

SQL应该是Cognos生成的,对于EU的数据(附件里的第一个SQL),执行时间大概为5分钟。对于Japan的数据(第二个SQL),数据量变少了,但是执行时间是EU的三倍多,要17分钟左右。

附件是两个SQL以及其对应的执行计划,各位大侠帮忙分析一下。谢谢!

附件:

附件图标cognos.sql (226.03 KB)

附件图标exfmt_europ.log (299.23 KB)

附件图标exfmt_europ.log (299.23 KB)

附件图标exfmt_japan.log (262.23 KB)

附件图标explain.log (271.12 KB)

收起
参与16

查看其它 11 个回答duanzhihui的回答

duanzhihuiduanzhihui数据库管理员IBM成都GDC
回复 3# mdkii

1) 这个查询结果出来是688344,确实比1122大很多。不光如此,而且根据重写的SQL来看,Europ中的这一步也和统计出来的有差距。
SELECT count(1)
               FROM DWDM.T_GLOBALSR_FCT AS Q5, DWDM.T_GEO_DIM AS Q18
               WHERE (Q5.ACTIVE_REC = 'Y')  AND
                       (Q18.GEO_DIM_UID = Q5.WORK_GEO_DIM_UID) AND
                       (Q18.IOT_SHORT_NM = 'Europe') and
                       (Q18.IMT_SHORT_NM IS NULL OR Q18.IMT_SHORT_NM IN
                       ('ADJ', 'Benelux', 'BeNeLux', 'CEE', 'DACH', 'France',
                       'France,NWA', 'Italy', 'Nordic', 'Spain,Portugal,Gre',
                    'UKI'))
数据量为1037592.而执行计划为492424。对于Japan这个plan中针对Q18(T_GEO_DIM)表的过滤,最终结果应该是3,但Estimated number of rows:         0.0715713。
造成估计值少的原因是什么呢?

2) 问题在production环境,selectivity没开,暂时没办法测试。另外Japan的数据确实比Europ的数据要少。

3) 附件是exfmt的结果。
互联网服务 · 2014-10-15
浏览1126

回答者

duanzhihui
数据库管理员IBM成都GDC

duanzhihui 最近回答过的问题

回答状态

  • 发布时间:2014-10-15
  • 关注会员:1 人
  • 回答浏览:1126
  • X社区推广