【发布时间】:2020-06-24 04:30:53
【问题描述】:
如果在连接条件中使用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;
【问题讨论】:
-
这个查询有什么问题?请参阅here 您应该发布的最低限度
-
您好,这里,据我所知,使用OR运算符在性能方面并不是一件好事。所以我想学习如何在 SQL 调优方面避免 OR 扩展。
-
您使用什么版本的 Oracle?这是相关的 - 检查
select * from V$VERSION -
您还应该学会区分在谓词中使用 OR 和 OR 扩展。前者由您在编写查询时完成,后者由 Oracle 优化器通过 转换查询 完成,目的是帮助您,以防 OR 谓词 可能导致性能问题。
标签: oracle database-performance sqlperformance sql-tuning