点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好专家
我对具有绑定变量的SQL的执行计划有疑问:
SQL1:在附加文件上按计划运行非常快
选择计数(*)
来自JHMATCH m
内连接VHBORDER bo
上m.BORDERID = bo.ORDERID
内连接VCRPTTRADINGACCVN ta
bo.CLIENTID = ta.CLIENTID
和bo.TRADINGACCSEQ = ta.TRADINGACCSEQ
和m.VALUEDATE> ='2019-06-03'
和m.VALUEDATE <='2019-06-30'
SQL2:对附件文件的计划运行非常慢
选择计数(*)
来自JHMATCH m
内连接VHBORDER bo
上m.BORDERID = bo.ORDERID
内连接VCRPTTRADINGACCVN ta
bo.CLIENTID = ta.CLIENTID
和bo.TRADINGACCSEQ = ta.TRADINGACCSEQ
和m.VALUEDATE> ='2019-06-02'
和m.VALUEDATE <='2019-06-30'
我执行了Runstats来收集表JHMATCH,THBORDER上的统计信息,并再次运行SQL1、2,但是遇到了同样的问题。 请帮助我调整SQL2。
非常感谢,
Bgs,Vinhpv。
sql1-plan.jpg (460.3 kB)
嗨,
这不是SAP数据库...随着时间的推移,SAP在注册表设置DB2_WORKLOAD = SAP下添加了越来越多的优化器开关。 这可以避免许多奇怪的优化器决策……
随着VALUEDATE范围范围谓词的改变,优化器有时会切换到HSJOIN。
HSJOIN计划在您的系统上运行缓慢。
是否有理由压缩您的表和索引? 当什么都没有压缩时,查询将导致比所需更多的I/O。 这可能是性能不佳的原因。 当表和索引较小时,DB2优化器可能还会选择一个更好的访问计划。
好的访问计划看起来还可以,但是表THBORDER上的主键并不覆盖查询中的所有谓词。 因此,DB2需要在此表上执行IXSCAN/FETCH。 将STATUS列作为INCLUDE列添加到该表的主键可能是一个好主意。 这应该在表THBORDER上启用纯IXSCAN,并使HSJOIN的吸引力降低。
问候
弗兰克
嗨弗兰克,
我从您的建议中了解了很多,非常感谢!
最衷心的希望,并希望将来能得到您的支持!
Bgs,Vinhpv。
一周热门 更多>