我发现,该字段顺序会影响 Select 性能。例如,我想从 View 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
运行速度比相同的选择要快得多,但字段顺序
TPLNR
- EQTYP
- DATBI
.如何解释这个问题?
最佳答案
它几乎可以肯定与索引相关。从透明表中读取时,为了获得最佳性能,WHERE
中的字段顺序子句应该匹配索引或表中字段的从左到右的顺序(以利用从主键创建的任何隐式索引)。不能为 View 定义索引,但肯定会使用为基础表定义的任何索引。
您应该能够使用 SQL 跟踪并确认使用了哪些索引来确认这一点。
关于select - Where 子句的字段顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185986/