SQL Server - 更快的记录检索

时间:2013-03-10 08:23:07

标签: sql sql-server sql-server-2008 sql-server-2008-r2

我有这种情况:SQL Server数据库中的一个表已经有5000万行。我们不时地批量插入行。每个批次具有相同的批次ID和行的日期时间戳,批次一次最多可以有100k行。

一天中有很多批次。使用batchIDdatetimestamp查询获取第一批行的最佳方法是什么?

我们一直在使用批处理ID的min并使用相应的datetimestamp一段时间,但它似乎没有高效运行。你能否提出一些见解,可以做些什么让这更好?感谢您的回复。

1 个答案:

答案 0 :(得分:0)

您应该为EDate - 列添加索引,包括BatchID

create nonclustered index Index_EDate_Table 
 on YourTable 
   (EDate ASC)
 include 
   (BatchID)

然后,您可以查询按时间戳排序的当天批次

select distinct BatchID
    from YourTable
   where EDate >= Cast(GetDate() as Date)
   order by EDate

这应该足够快。