【发布时间】:2019-11-24 18:31:10
【问题描述】:
我们想知道最好的方法是重写以下 SQL 以使其在 Oracle 数据库中执行得更好。
如您所见,查询是根据基于键的数据从两个表(Period 和 Account)中过滤出来的。我相信这可以很好地调整,可能将<> 替换为!= 会带来任何好处等。
SELECT
p.key, p.period
FROM
Period p
WHERE
p.version = 0
AND p.balance <> 0
AND EXISTS (SELECT 1
FROM Period p2
WHERE p2.jointKey <> 0
AND p.key = p2.jointKey
AND p.period = p2.period
AND EXISTS (SELECT 1 FROM Account a
WHERE a.customerKey = :B1 AND a.key = p.jointKey) );
【问题讨论】:
-
定义得更好,你得到了什么性能?你想要什么样的表现?
-
请阅读this excellent explanation,了解如何在此站点上询问 Oracle 调优问题。它不仅会向您显示我们回答此类问题所需的信息,还可能为您提供自己调查此问题所需的指导。
标签: sql oracle performance query-optimization oracle12c