使用排序提高sql查询性能?

时间:2016-02-25 13:02:35

标签: sql sql-server-2012

我有一个SQLServer数据库,其中包含包含温度测量的表格。

这些表包含MeasurementId(prim键),SensorId,Timestamp和Value的列。

我们现在已经有了足够的测量结果,我们的查询开始变得有点慢,我试图改进这一点。

时间戳值不一定按顺序排列,但对于每个SensorId,它们都是有序的。 我的问题是:无论如何我可以使用这个知识来提高SELECT * FROM MeasurmentTable WHERE SensorId=xx AND Timestamp>yy之类的查询的性能吗?

即,我可以向SQL Server提示,一旦您将结果缩小到唯一的SensorId,行保证按时间戳排序吗?

1 个答案:

答案 0 :(得分:2)

对于您的查询,您只需要一个复合索引:

create index idx_measurementtable_sensorid_timestamp
    on MeasurementTable(SensorId, Timestamp);