SQL Server 100万条记录:获取表的最后一条记录的最佳方法?

时间:2019-03-14 09:58:45

标签: sql sql-server sql-server-2016

SQL Server 1百万条记录:获取表的最后一条记录最快的最佳方法吗?

示例:我有一个具有100万条记录的表A。获得最快的最近记录的方法是什么?

我知道: SELECT TOP 1 * FROM A ORDER BY ID DESC

但是我认为这对我来说不是一个好方法。

2 个答案:

答案 0 :(得分:1)

如果您在ID上具有聚集索引(可能是主键索引),则问题中的查询将表现出色。没有更快的方法可以从表的单行中检索所有列。

我将添加一个表,该表在逻辑上是一组无序的行,因此需要ORDER BY才能返回“最后”或“第一”行。 ORDER BY列上的b树索引将有效地定位该行。

答案 1 :(得分:0)

在主键和value上只有一种索引。 order by有一点成本,但是如果您在order列

上有索引就可以
--ORDER BY 1 DESC means order by primary key index desc
SELECT [Columns] FROM [TABLENAME] ORDER BY 1 DESC 

--or you can use this if your first column is IDENTITY or A/A
SELECT [Columns] FROM [TABLENAME] ORDER BY [YOUR_COLUMN_WITHA/A ] DESC