我发现,该字段顺序会影响Select性能.例如,我想通过TPLNR(500),DATBI(1)和EQTYP(1)从视图V_EUQI中提取数据,句子:
SELECT ... FROM v_equi INTO itab
WHERE eqtyp IN rg_eqtyp
AND datbi IN rg_datbi
AND tplnr IN rg_tplnr
运行速度比同样的选择要快得多,但字段顺序为TPLNR-EQTYP-DATBI.
怎么解释这个问题?
最佳答案 它几乎肯定与索引相关.从透明表中读取时,为了获得最大性能,WHERE子句中字段的顺序应该与索引的字段顺序匹配,或者与表中字段的从左到右顺序匹配(以利用从中创建的任何隐式索引)主键(s)).无法为视图定义索引,但肯定会使用为基础表定义的任何索引.
您应该能够使用SQL跟踪确认并确认使用了哪些索引.