在理解聚集索引时我错过了什么?

2024-04-11

如果没有任何索引,则通过 IAM((索引分配映射)访问表行。
我可以使用 IAM 以编程方式直接访问行吗?

缺少索引是否意味着读取特定行的唯一方法是全表扫描读取所有表?
为什么 IAM 不能参与更具体的直接访问?

“如果表是堆(换句话说,它没有聚集索引),则书签是行标识符 (RID),它是 File#:Page#:Slot# 形式的实际行定位符”[1a]

插槽没有进一步的定义。好吧,其他消息来源告诉我们 Slot# 实际上是行号。正确的?或者需要与 IAM 进一步并置以确定特定行?

现在,引入聚集索引意味着无法直接访问数据,只能通过最终的聚集索引查找或顺序遍历聚集叶节点。

我是否正确理解引入聚集索引仅对选择连续相邻(范围)行并且仅通过聚集索引键有益?
对表进行集群还有哪些好处?

我是否正确理解聚集索引的引入会恶化非聚集索引参与非精确匹配查询的性能优势?没有直接访问、顺序访问无法并行、非聚集索引由聚集索引键增加等等,对吗?

好吧,我发现对表进行聚类对于非常具体且易于理解的上下文是有意义的,而在对表进行聚类时总是默认创建主键。为什么?

我在理解聚集索引时错过了什么?

[1]
Microsoft® SQL Server™ 2005 内部:存储引擎
作者:Kalen Delaney -(扎实的优质学习)
................................................
出版商: 微软出版社
发布日期:2006 年 10 月 11 日
打印 ISBN-10:0-7356-2105-5
打印 ISBN-13:978-0-7356-2105-3
页数:464

[1a] p.250 第 7 章索引组织部分。索引内部结构和管理

这是有用的在线复制粘贴
http://sqlserverindexeorgnization.blogspot.com/ http://sqlserverindexeorgnization.blogspot.com/
尽管没有任何来源

相关问题:

  • 无法直接访问聚集表中的数据行 - 为什么? https://stackoverflow.com/questions/4049179/no-direct-access-to-data-row-in-clustered-table-why
  • 为什么/何时/如何选择全聚集索引扫描而不是全表扫描? https://stackoverflow.com/questions/3970430/why-when-how-is-whole-clustered-index-scan-chosen-rather-than-full-table-scan
  • SQL Server 2005 中没有聚集索引的原因 https://stackoverflow.com/questions/4034076/reasons-not-to-have-a-clustered-index-in-sql-server-2005

Update:@性能DBA,

  • “请忘记您引用的 doco,然后重新开始”

凭什么重新开始我?
任何参考,任何建议。技术如何重新开始?

  • **“聚集索引总是更好”

你能回答我的问题吗为什么/何时/如何选择全聚集索引扫描而不是全表扫描? https://stackoverflow.com/questions/3970430/why-when-how-is-whole-clustered-index-scan-chosen-rather-than-full-table-scan疑问是全聚簇索引扫描是什么意思。不是比全表扫描读取的多吗?

  • “如果有 IAM,那么就有索引”

那么,如果根本没有索引就没有 IAM 吗?
有CI就有IAM吗?

我应该如何验证/研究它?
如果所有文档都写相反的内容:
- 非索引表上有 IAM
- 如果有聚集索引,则没有 IAM。


这是很多问题。是的,IAM 用于查找堆上的页面。不同之处在于,如果没有索引,就无法知道对于任何给定的数据片段要检索哪些页面。 SQL/关系数据模型的一个重要特征是查询仅通过数据值访问数据,而不是直接使用指针或其他结构。

槽号仅标识页面内的行。行数据在页内没有逻辑排序,即使在聚集索引中也是如此。每个数据页都包含一个行偏移表,该表指向页内行的位置。

由于需要额外的书签查找,聚集索引可能会减慢非聚集索引的数据访问速度。这可以通过使用 INCLUDE 子句将列添加到 NC 索引来缓解。有时,表上没有聚集索引可能会更有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在理解聚集索引时我错过了什么? 的相关文章

随机推荐