我在一些相当大的表(最大的表是 1000 万条记录)上有一个包含五个连接的查询,我想知道行是否存在。到目前为止,我已经这样做来检查行是否存在:
SELECT TOP 1 tbl.Id
FROM table tbl
INNER JOIN ... ON ... = ... (x5)
WHERE tbl.xxx = ...
使用此查询,在存储过程中需要 22 秒,我希望它接近“即时”。这甚至可能吗?我该怎么做才能加快速度?
我获得了我要加入的字段和 WHERE 子句中的字段的索引。
有什么想法吗?
最佳答案
切换到 EXISTS 谓词。一般来说,我发现它比选择前 1 等更快。
所以你可以这样写 IF EXISTS (SELECT * FROM table tbl INNER JOIN table tbl2 .. 做你的事情
关于SQL:优化问题,有行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1097873/