一
前言
今天在执行一个程序时,意外的发现只有400多行的记录,SQL语句读取了400多秒才获取数据. 所以尝试追踪了一下SQL语句的执行情况.
本文主要介绍跟踪并查看SQL执行计划的方式
本文的系统环境是S4 HANA . 如果是非HANA的ECC系统, 执行计划显示部分不适用.
二
追踪工具
以下事务代码可以触发系统追踪SQL执行情况
-
ST05 性能跟踪
-
ST12 Single transaction analysis
-
SAT ABAP Trace
实际应用中, 如果可以通过执行程序或事务代码重现该过程, 则推荐使用ST12追踪.
三
原始SQL语句
在指定的表ZTUP_ZMR21中关联MBEW读取移动平均价,及库存.
考虑可能的主数据缺失, 使用了LEFT JOIN 关联 V_MARC_MD 与 MBEW
执行时,只限制了ZTUP_ZMR21的UPLID 号 .指定UPLID号在表中查询到466条记录. 但是整个SQL语句执行效率很差. 耗时400秒左右.
具体细节请直接访问
https://mp.weixin.qq.com/s/4MIdCJ8W26CDaQ5Pqp1BAQ