【发布时间】:2010-01-22 19:23:25
【问题描述】:
当我查看特定查询的执行计划时,我发现 77% 的成本是在聚集索引搜索中。
我使用聚集索引这一事实是否意味着我不会看到由于我输出的列而导致的性能问题?
创建一个非集群版本并包含所有正在输出的列对我来说会更好吗?
更新: 聚集索引使用复合键。不确定这是否会有所不同。
【问题讨论】:
-
这个信息太少了,无法给你一个好的推荐。你的桌子是什么样子的?有哪些领域?哪些字段被索引?您最常见的查询是什么样的??
-
成本是相对的:您能给我们更多信息吗?
-
Hrrm,您还需要什么其他信息?占用 77% 成本的子树使用了大约 97% 的经过时间和大约 60% 的 CPU 时间。它最终返回接近 600,000 条记录。
-
嗯,是查询计划的子树占了 77% 还是聚集索引 seek 本身占了 77%?您的查询返回 600,000 行;我想你担心需要多长时间(不管那个时间是多少)? 600,000 行是相当数量的数据。将其发送给客户端需要一段时间。您是否确认是执行时间有问题,还是传输时间有问题?当这不是问题时,您不会想浪费太多时间来改进查询。
-
它是索引搜索本身。我如何确认它是执行时间而不是传输时间?
标签: sql sql-server