2011-11-16 31 views
0
SELECT SUM(AMT) FROM TB_TMP_TR GROUP BY ACCNO 
SELECT SUM(AMT) FROM TB_TMP_TR2 GROUP BY ACCNO 

,唯一不同的是TB_TMP_TRACC为聚集索引和TB_TMP_TR2ACC非聚集索引更多。执行计划显示,聚簇索引查询的成本比非聚集索引

执行计划显示,第一是采取65%,第2个需要35%(批号相对)

SELECT * FROM TB_TMP_TR WHERE ACCNO = @acc 
SELECT * FROM TB_TMP_TR2 WHERE ACCNO = @acc 

一号更快

我不知道为什么?

+0

什么**数据类型,这两个查询**是'ACCNO'在你的表?在第二个例子中 - TB_TMP_TR2是否有其他一些列定义为聚簇索引?如果是这样:什么专栏?该列的数据类型是什么? –

回答

1

由于聚集索引必须包含全部列,因此覆盖非聚簇索引可能会比聚簇索引更窄。越窄意味着它的页面越少,这意味着更少的读取(物理和逻辑)。因此,它会更快。 覆盖是关键词。

请运行带有

SET STATISTICS TIME ON; 
SET STATISTICS IO ON;