Where子句的字段顺序

时间:2013-04-24 07:30:11

标签: select abap database-performance

我发现,该字段顺序会影响Select性能。例如,我想通过V_EUQI(500),TPLNR(1)和DATBI(1)提取视图EQTYP中的数据,句子:

SELECT ... FROM v_equi INTO itab
 WHERE eqtyp IN rg_eqtyp
   AND datbi IN rg_datbi
   AND tplnr IN rg_tplnr

运行速度比同一选择运行得快得多,但是字段顺序TPLNR - EQTYP - DATBI

如何解释这个问题?

1 个答案:

答案 0 :(得分:2)

几乎可以肯定索引相关。从透明表中读取时,为了获得最大性能,WHERE子句中字段的顺序应与索引的字段顺序或表中字段的从左到右顺序匹配(以利用任何字段)从主键创建的隐式索引)。无法为视图定义索引,但肯定会使用为基础表定义的任何索引。

您应该能够使用SQL跟踪确认并确认使用了哪些索引。

相关问题