Answers:
尼克几乎是正确的。
如果进行更新以增加打包页面上的记录大小,则会导致页面拆分,但除此之外,使用身份主键不会导致聚集索引中的页面拆分。
(尽管说,存储引擎可以执行5种类型的页面拆分,但并非所有这些拆分都会导致碎片和数据移动-插入单调增加的标识值时得到的一种是页面末尾拆分。但是我离题了...)
我已经为许多客户提供了帮助,我围绕这一切编写了BOL-如果您只是想作为实物入账的一种价值,那么70%的成功就是最大的。正如尼克所说,请进行适当的监视和调整。
为任何索引选择一个填充因子是一种平衡行为,该行为发生了多少活动,该活动将页面填充度推向100%,并且您可以采取纠正措施的频率重置该填充因子。您需要考虑一下,如果将填充因子设置得非常低(例如50%),那么最初将在页面上“浪费”多少空间,但是我再次发现这在某些情况下是合适的。
您还应该考虑如何使用索引。如果仅用于单例查找,您可能会因为较低的填充因子以及在重建/碎片整理之间花费更多时间而得不到解决,因为您不会因为在内存中拥有很多稀疏的聚集索引而浪费过多的IO /内存。为了进行大范围扫描,您需要将填充系数提高一些,以提高IO和内存效率。
还有OLTP与DW问题-通常DW不变,因此索引的填充因子为100%。OLTP是困难的部分。
整理完聚集索引之后,请记住,非聚集索引也需要引起注意,因为它们很可能会变得零散。
重置填充因子时,请记住,您可以在重建和碎片整理之间进行选择。DBCC INDEXDEFRAG / ALTER INDEX ...在某些情况下,REORGANIZE可以重置索引的填充因子,这些索引的碎片不很严重。
希望这可以帮助!
(对不起,“过度回答”-我的快捷按钮之一,已编写了代码:-)