gpt4 book ai didi

oracle - 如何避免 OR 扩展?

转载 作者:行者123 更新时间:2023-12-05 01:19:03 26 4
gpt4 key购买 nike

如果在连接条件中使用 OR 运算符,如何优化以下查询以避免 SQL 调优方面的 OR 扩展?

SELECT t1.A, t2.B, t1.C, t1.D, t2.E 
FROM t1 LEFT JOIN t2
ON t1.A=t2.A OR t1.B=t2.C;

最佳答案

具有 OR 条件将忽略使用索引。因此,一旦您拥有以下索引 -

t1 (A, B)
t2 (A, C)

您可以尝试以下具有 UNION ALL 子句的查询 -
SELECT t1.A, t2.B, t1.C, t1.D, t2.E 
FROM t1 LEFT JOIN t2 ON t1.A=t2.A
UNION ALL
SELECT t1.A, t2.B, t1.C, t1.D, t2.E
FROM t1 LEFT JOIN t2 ON t1.B=t2.C;

此查询将使用索引并且可能执行得更快。

关于oracle - 如何避免 OR 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60648754/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com