选择查询性能问题

2020-08-17 12:04发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 能否请您告诉我如...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

能否请您告诉我如何简化以下代码。

从LIKP和LIPS中获取数据时,没有非关键字段,需要5到10分钟的时间执行,因为用户要求不使用vb​​eln作为输入并提高性能。

选择t1〜vbeln t1〜vstel
t1〜kodat t1〜kunag t1〜kunnr
t1〜wadat t1〜wadat_ist t2〜posnr t2〜pstyv
t2〜werks t2〜matnr t2〜arktx t2 〜charg
t2〜spart t2〜lgort
进入表i_delpos
的对应字段,从likp AS t1内联接唇部AS t2
在t2〜vbeln = t1〜vbeln
的t1〜wadat中 在s_date
和t1〜vstel中在s_vstel
和t2〜werks中s_werks
和t2〜matnr在s_matnr
中,并且t2〜spart在s_spart
中,并且在s_lgort中是t2〜lgort。 >

8条回答
微wx笑
2020-08-17 12:10

任何与性能有关的调查都应从使用SQL跟踪(ST05)并检查执行路径开始。 (HANA系统中也可以存在其他工具,但我认为这里不是这种情况。)

只能通过主键或辅助索引来实现对数据库级别的快速访问。 就是这样。 我猜您的系统中没有适合LIKP或LIPS的二级索引,因此它必须遍历所有记录(也称为"全表扫描")以找到与选择标准匹配的记录。 尽管它可能只找到4条甚至0条匹配记录,但仍然只花时间查找它们。 想象一下,如果您将一袋大米和一袋豆混合在一起,然后必须找到所有长于3毫米的米粒。 一样的东西,但是带有数据。

我对Bartosz的将SELECT分成两个多带带的建议感到困惑。 尽管并不是不可能提高性能,但是我发现DB优化器没有更有效地处理它是奇怪的。 这可能是YMMV情况,它可能基于数据库甚至特定的SAP系统而有所不同。 同样,二级索引仍然可能是更好的解决方案。

性能调优并不是一门精确的科学,因此,最好的选择是使用DB工具并在特定系统中进行实验。 如果您需要使用工具或解释发现方面的帮助,请联系当地的Basis管理员或DBA。

一周热门 更多>