SQL-LEFT JOIN需要花费很长时间才能执行

时间:2019-04-03 21:21:58

标签: sql performance left-join

我正在尝试查看表A中是否缺少表B中的任何行。

为此,我使用以下查询:

SELECT t1.cusa
FROM patch t1
LEFT JOIN trophy t2
ON t2.titleid = t1.titleid
WHERE t2.titleid IS NULL

该查询以前曾起作用,但是现在trophy表具有近200.000行,这非常慢。我已经等待了5分钟才能执行它,但它仍在加载并最终超时。

有什么方法可以加快查询速度吗?

2 个答案:

答案 0 :(得分:1)

在两个表(尤其是t2)上的titleId中添加索引是获得更好性能的最快方法。对于SQL Server来说,200K记录不算什么。

答案 1 :(得分:0)

尝试一下,它可能会更好一些!

SELECT t1.cusa
FROM patch t1
WHERE NOT EXISTS (SELECT 1
    FROM trophy t2
    WHERE t2.titleid = t1.titleid );