以下两个查询给了我相同的结果,但使用group by运行速度更快。这是否表明优化查询将有利于在可能的情况下使用组?或者更可能是我遇到某种特殊情况?为什么群组通过使sql查询速度如此之快
更快的查询(不太直观我):
SELECT A.Advertiser
FROM (SELECT TOP (100) PERCENT Advertiser, [Final Status]
FROM dbo.Rehenas_View_2
GROUP BY [Final Status], Advertiser
HAVING ([Final Status] IS NULL)) AS A INNER JOIN
(SELECT TOP (100) PERCENT Advertiser, [Final Status]
FROM dbo.Rehenas_View_2 AS Rehenas_View_2_1
GROUP BY [Final Status], Advertiser
HAVING ([Final Status] = N'final')) AS B ON A.Advertiser = B.Advertiser
GROUP BY A.Advertiser
慢查询(我正在努力简化以上时,我注意到了速度差)
SELECT A.Advertiser
FROM (SELECT TOP (100) PERCENT Advertiser, [Final Status]
FROM dbo.Rehenas_View_2
WHERE ([Final Status] IS NULL)) AS A INNER JOIN
(SELECT TOP (100) PERCENT Advertiser, [Final Status]
FROM dbo.Rehenas_View_2 AS Rehenas_View_2_1
WHERE ([Final Status] = N'final')) AS B ON A.Advertiser = B.Advertiser
GROUP BY A.Advertiser
也许在两者上运行EXPLAIN PLAN都会给你一个提示。 – duffymo 2010-12-07 04:44:47
性能将取决于这是哪个数据库。当然看起来是MSSQL,但你应该用一个标签明确地声明它。 – 2010-12-07 04:50:05