重建索引的功能是什么?


8

我在IT世界中还很年轻,并且每天都在学习。我刚开始使用SQL数据库,但有很多基本问题。

特别是其中之一,重建索引的功能是什么?我尚未通过Google找到一个好的答案。

任何反馈表示赞赏。

Answers:


11

重建索引以消除碎片。有上千篇关于索引碎片性质的文章和博客文章,但是@BrentOzar最近在“ 停止担心SQL Server碎片”中发布了一个特别简洁的解释。

让我们退后一步,并假装您的数据库是按姓氏,名字组织的电话簿。

当人们进入您的城市时,我们必须将他们添加到电话簿中。理想情况下,每个页面都有一些空白,我们用填充因子来控制它。当SQL Server重建索引时,它使用填充因子来确定每个页面上剩余多少可用空间。如果没有足够的可用空间,则SQL Server必须进行一些重新排列-但是它不能完全在电话簿中间插入一个全新的页面。这本书已经装订了。我们将不得不在末尾添加更多空白页。

问题1 –内部碎片:我们新添加的页面上几乎没有任何内容。问题2 –外部碎片:电话簿页面混乱。

布伦特(Brent)的最新文章对他以前的系列之一“ 索引碎片发现 ”提供了更新的观点。较老的文章着重介绍了来自更早的研究中有关碎片破坏性影响的统计信息,而较新的文章则通过确保完全缓存数据库来缓解很大一部分性能下降的情况。

Ram现在可笑地便宜了,它可能是对于高度分散的数据库而言最便宜,最简单,风险最低的解决方案。尤其是如果数据库设计的性质如此,尽管进行了维护工作,它自然会变得支离破碎。


3

过于简化的答案-索引重建是一种消除索引碎片的方法。它删除指定的索引,并再次创建以消除过程中的碎片。您可能会发现这篇文章很有用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.