我正在尝试从SQL Server 2016中的一列获取最新日期,但是检索该数据大约需要10秒钟。该表有超过1.46亿条记录。
结合我必须运行代码的其他查询,需要1分钟以上的时间才能完成。
如何使此查询更快?
DECLARE @MaxDate DATE
SELECT @MaxDate = MAX(MyDate)
SELECT COUNT(*) FROM MyTable
我什至尝试过
SELECT c.*
FROM (SELECT MyDate, COUNT(*) as TheDate,
RANK() OVER (ORDER BY COUNT(*) DESC) as seqnum
FROM MyTable
GROUP BY MyDate
) c
WHERE seqnum = 1;
它是相同的速度
答案 0 :(得分:3)
如果您想快速获得最大日期,请在该列(mydate)
上创建一个索引。
您应该能够:
select max(mydate)
from t;
或者如果要所有行:
select top (1) with ties t.*
from t
order by mydate desc;