我发现,该字段顺序会影响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
。
如何解释这个问题?
答案 0 :(得分:2)
几乎可以肯定索引相关。从透明表中读取时,为了获得最大性能,WHERE
子句中字段的顺序应与索引的字段顺序或表中字段的从左到右顺序匹配(以利用任何字段)从主键创建的隐式索引)。无法为视图定义索引,但肯定会使用为基础表定义的任何索引。
您应该能够使用SQL跟踪确认并确认使用了哪些索引。