回答

收藏

非群集索引在SQL Server中的工作方式

技术问答 技术问答 291 人阅读 | 0 人回复 | 2023-09-12

我有一个与数据库理论相关的问题:
$ w: ~+ v, z3 V1 }  \假设我们的表格有三列:[PersonID],[PersonName],[PersonAge]。9 {9 g, O. P/ E4 X; Z
我们知道,当我们使用一列非聚集索引时,SQL Server根据指定的列对表数据进行排序并建立B8 g9 W& \: T0 d$ C6 F" e
    树。当我们需要找到使用该指数的行时,SQL通过比较原子数据对象(扫描基础)B0 F" W8 Y& y1 \  a( C2 M- a( R: s: C
    树int或者string,例如。这是明确的。当指数是如何非集群工程并搜索数据时,我们通过一列(假设构建它[PersonName]),但是如果我们通过2列上创建非聚集索引:[PersonName]和[PersonAge]?5 b* E9 I2 U' I& ?% T. E+ \
我知道,在排名标准中,最重要的条件是[PersonName],如果多个记录有相同的标准,将按顺序排序[PersonAge]。但是,基于索引,SQL9 }; j& ~+ X- n
Server如何处理物理?B   树?
8 {; a* ]% t8 o) j3 L, q当它执行查询时,它将如何使用这样的树
( @& t3 d) s) V1 v0 o& R$ SSELECT * FROM dbo.Person WHERE [PersonName] = 'Bob' AND [PersonAge] = 45谢谢你的解释。
7 E3 A" j& S* Y0 U" L6 _8 `- n                                                                1 [6 S1 n3 F1 a8 h
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则