【问题标题】:Improving the performance of selects and inserts of latest records in SQL Server提高 SQL Server 中最新记录的选择和插入性能
【发布时间】:2021-02-05 19:09:28
【问题描述】:

我有一个表,其中有一个名为BatchId 的列。当要插入的 batchId 是新的并且要选择的是最新的时,我想确保该表上的 select 和 insert 非常快。

Select * 
from table 
where batchId = @maximumBatchId

我不关心其他batchIds的性能。

batchId 上添加索引确实提高了性能,但随着索引大小的增加,它可能会有所不同。

【问题讨论】:

  • 如果你正在寻找,那么大小不应该对性能产生任何重大影响(更重要的是寻找扫描了多少行,执行了多少查找等)。

标签: sql sql-server performance


【解决方案1】:

你可以使用:

select top (1) t.*
from t
order by batchid desc;

为了提高性能,您需要在(batchid desc) 上建立索引。

如果多行可以有相同的batchid,则使用:

select top (1) with ties t.*

【讨论】:

  • 我也想知道 desc index 是否可以解决问题,但不确定因为找不到任何文章。
  • @Deepak 在大多数情况下,索引可用于开始或结束(例如,它可以从任一端开始并沿任一方向扫描)。一些信息here
猜你喜欢
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 2010-12-05
  • 2015-10-28
  • 2020-01-05
相关资源
最近更新 更多