【发布时间】:2017-10-18 20:41:47
【问题描述】:
连接两个表时SQL查询慢,有什么办法可以提高查询速度?
我有一个小表A和大表B。A有我们需要的所有列,除了TYPE列,TYPE值只能在B中找到。但是B有太多无用的行。
现在我想从 A 中选择所有行,它们应该包含所有列加上 TYPE。我的想法是使用左连接,因为它可以选择 B 中存在于 A 中的所有行,因此我们可以获得 TYPE 值。
甲骨文:
SELECT B.HOUR, B.LOCATION, B.PRICE, B.TYPE, B.DATE
FROM A LEFT JOIN B
ON A.HOUR=B.HOUR AND A.LOCATION=B.LOCATION AND A.PRICE=B.PRICE AND A.DATE=B.DATE
速度很慢。此外,我只有读取权限,因此无法创建新表。有什么方法可以改善吗?谢谢。
【问题讨论】:
-
请定义表和索引。
-
确保您的 ON 子句中的所有列都已编入索引
-
除了阅读之外没有任何权限,你什么都做不了。
-
运行解释计划并发布结果
-
我想你想要内部加入