1

所以我在用户表上有这个结构:

在此处输入图像描述

但是,如果我运行以下代码:

select count(*) 
from WH.dbo.tb_DimUserAccount

它似乎适用于非唯一非聚集索引ix_DimUserAccount_UserType

在此处输入图像描述

这是索引扫描:

在此处输入图像描述

为什么不去扫描ix_DimUserAccount_Unique?我应该更改我的代码以某种方式使用不同的索引吗?

4

1 回答 1

6

因为非聚集索引可能比聚集索引更窄,并且扫描比聚集索引便宜(要读取的页面更少)。

NCI 叶页只包含索引键和任何包含列的值。聚集索引叶页需要包含表中所有列的值(或指向值的指针)。

因此,聚集索引(假设填充因子相同)通常每页适合的行数比 NCI 少(除了 NCI 包括表中的所有列的情况)

于 2013-09-06T12:27:34.313 回答