我有一个SQLServer数据库,其中包含包含温度测量的表格。
这些表包含MeasurementId(prim键),SensorId,Timestamp和Value的列。
我们现在已经有了足够的测量结果,我们的查询开始变得有点慢,我试图改进这一点。
时间戳值不一定按顺序排列,但对于每个SensorId,它们都是有序的。
我的问题是:无论如何我可以使用这个知识来提高SELECT * FROM MeasurmentTable WHERE SensorId=xx AND Timestamp>yy
之类的查询的性能吗?
即,我可以向SQL Server提示,一旦您将结果缩小到唯一的SensorId,行保证按时间戳排序吗?
答案 0 :(得分:2)
对于您的查询,您只需要一个复合索引:
create index idx_measurementtable_sensorid_timestamp
on MeasurementTable(SensorId, Timestamp);