在做abap程序性能优化时,有时需要知道一个SQL在执行时到底用没用到secondry index,或者是用到了哪个index。
通过ST05工具可以回答上面的问题。
1, 测试代码
下面以一个简单的SQL例子来讲解如何使用ST05.
SQL语句的例子:
只用LFART这个字段作为条件读取likp表
1 2 3 4 5 6 7 8 |
REPORT ztest_sql_index. DATA : git_likp TYPE STANDARD TABLE OF likp WITH HEADER LINE. SELECT * FROM likp INTO TABLE git_likp WHERE LFART = 'LR'. |
2, ST05使用步骤
tcode:ST05 ,激活SQL trace
运行SQL语句的例子程序,
然后再deactivate trace后,点击display trace 显示结果
在结果屏幕上,选中SQL行(就是例子代码中读取LIKP的SQL),点击display individual records按钮
在下一屏幕中,选中SQL行,点击display execution plan按钮
可以看到这个SQL用到了likp~ys3的index
3, SE11验证
到SE11验证一下:
YS3这个index 的index 字段只有LFART,验证了ST05的结果是正确的。
以上。
如果是较为老的系统,可以选择Edit->Explain For An SQL Statement去查看SQL中使用的索引
2019-09-04 5:03 下午