Sql server 何时为DBCC DBREINDEX指定填充因子?

Sql server 何时为DBCC DBREINDEX指定填充因子?,sql-server,indexing,dbcc,Sql Server,Indexing,Dbcc,我在谷歌上查了一下,发现如果填充因子是0,那么它会在索引页面上使用100%的空间。否则,我们需要指定填充因子 我向专家提出的问题是: 为了获得最大的索引效率,我们是否应该将其留空 我在我们的一些数据库中发现,对于一些索引,填充因子是80、85、90、100。那么,什么时候应该指定填充因子为80或90 从填充系数为0的sys.index中选择填充系数* 默认的fillfactor是100开箱即用(如果没有更改的话)。当fillfactor为0时,DBCC DBREINDEX使用为索引指定的最后一个

我在谷歌上查了一下,发现如果填充因子是0,那么它会在索引页面上使用100%的空间。否则,我们需要指定填充因子

我向专家提出的问题是:

  • 为了获得最大的索引效率,我们是否应该将其留空
  • 我在我们的一些数据库中发现,对于一些索引,填充因子是80、85、90、100。那么,什么时候应该指定填充因子为80或90

    从填充系数为0的sys.index中选择填充系数*


  • 默认的fillfactor是100开箱即用(如果没有更改的话)。当fillfactor为0时,DBCC DBREINDEX使用为索引指定的最后一个值

    Fillfactor设计用于在创建、重建索引或对索引进行碎片整理时提高索引性能和数据存储。通过设置fillfactor,可以指定每页上要用数据填充的空间百分比,从而在每页上保留可用空间以供将来的表增长。例如,如果fillfactor是80,那么每个页面的20%都是空的,为新记录提供了空间。当该空间用完时,会发生页面拆分

    Microsoft建议我们在大多数情况下使用默认的填充因子。但是,如果您知道如何使用表,则可以对其进行修改。非只读表的fillfactor为100将立即导致在插入/更新时发生页拆分,因此100仅适用于只读表。书写量大的表格应该在50%到70%之间。如果大多数表是选中的,而不是插入和更新的,那么所有其他表的大小应该在80和90之间

    你应该仔细阅读一下分页法。另外,建立一个重建索引的时间表。您还需要考虑是否对每个索引进行聚类。例如,可以从计划中排除碎片百分比较低的聚集索引,以节省一些时间

    一些参考资料:


    你会找到你需要知道的一切。我的回答对你有帮助吗?如果是,请将其标记为答案。