【发布时间】:2013-06-05 22:08:36
【问题描述】:
我有一个名为 ResultValues 的表,其中有 6 列,4 列是整数,1 是数据时间,1 是 varbinary (1640)。
总记录数为“27,389,918”,因此该表非常庞大。现在当我运行这个查询时
select LineNo ,TraceNo, DateTime ,Bin from ResultValues
where ID = 8115
Order by DateTime ASC
我在 UniqueID、ID、LineNo、TraceNo 上创建了非聚集索引,它给了我 987014。
问题:我在非聚集索引之前所用的时间仍然相同。有人可以告诉我如何减少使用此查询的时间。请建议。
【问题讨论】:
-
ID是唯一值吗?
-
查询计划说什么?很可能它没有使用索引。尝试先创建一个带有 ID 的索引。
-
不,不是。它们都不是独一无二的。唯一 ID 也不是唯一 ID。
-
什么是 987014?行数或查询持续时间?如果是行数,则将数据从服务器传输到应用程序需要一段时间
-
你真的希望结果按日期时间排序。结果需要对 987014 个项目进行排序。您可以通过在 ID 上创建聚集索引以某种方式更快地过滤数据。但仍然需要时间。
标签: sql sql-server-2008 optimization query-optimization