这是@martin smith 优秀答案的后续问题https://stackoverflow.com/questions/1251636/what-do-clustered-and-non-clustered-index-actually-mean
之后我看了 Paul randal 的 MCM 视频,它展示了为什么索引碎片在大型扫描中只对巨大的表更重要。如果我理解正确,当页面的逻辑连续性与它们应该的物理顺序不同时,就会发生外部/逻辑碎片..
假设我有大表和身份作为聚集键并且没有更新聚集键并且所有页面都按逻辑顺序排列,Sql 是否保证所有这些页面都位于磁盘中非常接近......在第一次插入期间它可能会阻塞这个表的一些空间,但在那之后许多插入也可能发生在其他表上,因此数据可能不会非常接近......我的理解是否正确?
这可能适用于您的聚簇索引,但您还需要应对非聚簇索引。他们也会遭受很多痛苦,而这通常是最重要的地方。
但是你应该考虑影响。有时碎片可能是一个大问题(例如当您从堆中删除大量数据时),有时它真的不是一个大问题。通常还有其他问题比拼命避免碎片化更重要。