译索引进阶:SQL SERVER中的索引碎片下篇

Posted qianxingmu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了译索引进阶:SQL SERVER中的索引碎片下篇相关的知识,希望对你有一定的参考价值。

为了讨论碎片产生的原因,以及避免和移除索引碎片的技术,我们必须从本进阶系列后续将介绍的两个章节借用一些知识点:创建/更新索引的知识,以及向一个索引表插入数据行的相关知识。

当我们讲解这些信息的时候,记住本节背景部分提到的内容,仅当你的应用是进行索引扫描时,碎片是不被期望的(不管是索引的完全扫描还是部分扫描)。当你的应用程序仅仅返回一个索引键值的少量数目的条目时,碎片其实并不是个问题。如同列表3所示的5行数据的查询。

SELECT *
FROM Sales.SalesOrderDetail
WHERE SalesOrderID = 56080;
GO

  列表3:一个高选择性的查询

 当你在一个已经填充了数据行的表上创建或者重建索引的时候,会发生磁盘空间的重分配,导致了一几乎不包含外部碎片的索引。内部碎片的数值取决于你为 FILLFACTOR选项指定的值,它决定了页的覆盖率。在后续的数据更新中,SQL SERVER不会做任何努力来包含这种页覆盖率,随着数据行被插入表,结果条目会被插入索引页中,这些页会变得更加饱和。

 

以上是关于译索引进阶:SQL SERVER中的索引碎片下篇的主要内容,如果未能解决你的问题,请参考以下文章

译索引进阶(十七): SQL SERVER索引最佳实践

T-SQL查询高级—SQL Server索引中的碎片和填充因子

T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他

SQL Server通过整理索引碎片和重建索引提高速度

SQL Server 索引碎片产生原理重建索引和重新组织索引

sql server 索引碎片相关问题