1

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

一天中有很多批次运行。batchID使用and获取第一批行的最佳查询方式是datetimestamp什么?

我们一直在使用批处理 id 的 min 并使用相应的 datetimestamp 有一段时间了,但它似乎没有有效地运行。您能否就可以做些什么来改善这一点提供一些见解?感谢您的回复。

4

1 回答 1

0

您应该为EDate-Column 添加一个索引,包括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

这应该足够快。

于 2013-03-10T09:13:24.140 回答