我在 IT 世界中还很年轻,我每天都在学习。我刚开始使用 SQL 数据库,我有很多基本问题。
特别是一,重建索引的功能是什么?我还没有通过谷歌找到一个好的答案。
任何反馈表示赞赏。
Mar*_*ith 11
重建索引以消除碎片。有一千零一篇关于索引碎片性质的文章和博客文章,但@BrentOzar 最近在停止担心 SQL Server 碎片中发布了一个特别简洁的解释。
让我们退后一步,假设您的数据库是按姓氏和名字组织的电话簿。
当人们搬进您的城市时,我们必须将他们添加到电话簿中。理想情况下,每个页面都有一些空白空间,我们用填充因子来控制它。当 SQL Server 重建索引时,它使用填充因子来决定在每页上留下多少可用空间。如果没有足够的可用空间,SQL Server 必须进行一些重新排列——但它不能完全在电话簿中间推一个全新的页面。书已经装订好了。我们将不得不在最后添加更多的空白页。
问题#1 – 内部碎片:我们有一个新添加的页面,上面几乎没有任何内容。问题#2 – 外部碎片:电话簿页面乱序。
Brent 最近的文章提供了对他之前的系列之一“索引碎片调查结果”的最新观点。较早的文章重点介绍了关于碎片化破坏性影响的更早研究的统计数据,最近的文章通过确保您的数据库被完全缓存来减轻很大比例的性能下降。
Ram 现在非常便宜,以至于它可能是对高度分散的数据库最便宜、最简单、风险最低的解决方案。尤其是如果数据库设计的性质是尽管进行了维护工作,它自然会变得支离破碎。