Where子句的字段顺序



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

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

运行速度比相同的select快得多,但字段顺序为TPLNR - EQTYP - DATBI

如何解释这个问题?

这几乎肯定与索引有关。当从透明表中读取数据时,为了获得最佳性能,WHERE子句中字段的顺序应该与索引的顺序匹配,或者与表中字段的从左到右顺序匹配(以利用从主键创建的任何隐式索引)。不能为视图定义索引,但是为底层表定义的索引肯定会被使用。

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

相关内容

  • 没有找到相关文章

最新更新