SELECT SUM(AMT) FROM TB_TMP_TR GROUP BY ACCNO
SELECT SUM(AMT) FROM TB_TMP_TR2 GROUP BY ACCNO
唯一不同的是TB_TMP_TR
将ACC
作为聚集索引,TB_TMP_TR2
将ACC
作为非聚集索引。
执行计划显示第一个占65%,第二个占35%(批量相对)
但是
SELECT * FROM TB_TMP_TR WHERE ACCNO = @acc
SELECT * FROM TB_TMP_TR2 WHERE ACCNO = @acc
第一个更快
我想知道为什么?
答案 0 :(得分:1)
覆盖非聚集索引可能比聚簇索引更窄,因为聚簇索引必须包含所有列。更窄意味着它拥有更少的页面,这意味着更少的读取(物理和逻辑)。因此,它会更快。 涵盖是关键词。
请使用
运行两个查询SET STATISTICS TIME ON;
SET STATISTICS IO ON;