【发布时间】:2012-11-16 20:19:11
【问题描述】:
我正在运行以下查询,但耗时太长。有没有办法让它更快或改变查询的编写方式?
请帮忙。
SELECT *
FROM ProductGroupLocUpdate WITH (nolock)
WHERE CmStatusFlag > 2
AND EngineID IN ( 0, 1 )
AND NOT EXISTS (SELECT DISTINCT APGV.LocationID
FROM CM_ST_ActiveProductGroupsView AS APGV WITH(nolock)
WHERE APGV.LocationID = ProductGroupLocUpdate.Locationid);
【问题讨论】:
-
你可以去掉内部查询中的 distinct,尽管 SQL Server 可能会自己解决这个问题。除此之外,您的表定义是什么?你有什么索引?你的表有多少行?
-
你没有给我们太多的继续......(1)该查询中涉及的表是什么样的(结构)? (2) 它们包含什么样的数据——有多少行,列的选择性如何? (3) 您已经建立了什么样的索引?
标签: sql performance sql-server-2008-r2