提高 SQL Server 中最新记录的选择和插入性能
Posted
技术标签:
【中文标题】提高 SQL Server 中最新记录的选择和插入性能【英文标题】:Improving the performance of selects and inserts of latest records in SQL Server 【发布时间】:2021-02-05 19:09:28 【问题描述】:我有一个表,其中有一个名为BatchId
的列。当要插入的 batchId 是新的并且要选择的是最新的时,我想确保该表上的 select 和 insert 非常快。
Select *
from table
where batchId = @maximumBatchId
我不关心其他batchIds的性能。
在batchId
上添加索引确实提高了性能,但随着索引大小的增加,它可能会有所不同。
【问题讨论】:
如果你正在寻找,那么大小不应该对性能产生任何重大影响(更重要的是寻找扫描了多少行,执行了多少查找等)。 【参考方案1】:你可以使用:
select top (1) t.*
from t
order by batchid desc;
为了提高性能,您需要在(batchid desc)
上建立索引。
如果多行可以有相同的batchid
,则使用:
select top (1) with ties t.*
【讨论】:
我也想知道 desc index 是否可以解决问题,但不确定因为找不到任何文章。 @Deepak 在大多数情况下,索引可用于开始或结束(例如,它可以从任一端开始并沿任一方向扫描)。一些信息here以上是关于提高 SQL Server 中最新记录的选择和插入性能的主要内容,如果未能解决你的问题,请参考以下文章
Excel-VBA 访问 sql server 表进行选择和插入太慢