我正在使用 SQL Server 2008。
我需要您的建议,说明为什么这两个查询的时间相似(超过 200 万行大约需要 52 秒):
查询一:
DBCC DROPCLEANBUFFERS
DECLARE @curr INT
SET @curr = YEAR(GETDATE())
SELECT MAX([Date])
FROM DB_Item
WHERE YEAR([Date]) = @curr
查询 2:
DBCC DROPCLEANBUFFERS
SELECT MAX([Date])
FROM DB_Item
通过使用实际执行计划,我看到它使用Clustered Index scan
.
那么,为什么会这样?我们是否有另一种方法可以Date
快速获得 1 个表中的最大值?
非常感谢您的帮助。
谢谢。