重建索引的填充因子
需要指定嘛?如果要怎么查看之前的因子数是多少,如果不需要,是不是自动填充之前的因子数?
[解决办法]
查询INDEX FILL FACTOR:sys.indexes fill_factor 栏位
默认是0也就是100%的填充。填充因子主要是为了减少页拆分,比如经常有更新导致一个页无法存放记录而出现页拆分导致性能下降,根据你的情况选择。
[解决办法]
--打开高级选项才能查看修改默认填充因子
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
--查看默认的填充因子(默认config_value=0,也就是100%)
EXEC sp_configure 'fill factor (%)'
--查看某一索引的填充因子
SELECT fill_factor,*
FROM sys.tables A
INNER JOIN sys.indexes B
ON A.object_id = B.object_id
WHERE A.[name] = 'tablename'
--#1.只有在创建或重新生成了索引后,才会应用填充因子
--#2.看你索引的具体情况来确定填充因子。由于填充因子只对新建索引时起作用(ReBuild也相当于重建),所以无论你刚开始设置成多少,运行一段时间后,都有拆页的可能性.举两个例子:
--1.对于一个自增列的索引,由于数据一直插向索引尾部,所以填充因子可以是100
--2.对于一个GUID列的索引,由于GUID排序的不确定性,填充因子的设定意义也不大
--#3.同时填充因子也是个双刃剑,例如50%的填充因子,会使本来100页就能放下的数据,变成200页才能放得下.
--建议:一般OLTP系统,80%-90%即可。分页早晚在所难免
--如果不设置,自动为使用以前的
查询INDEX FILL FACTOR:sys.indexes fill_factor 栏位
默认是0也就是100%的填充。填充因子主要是为了减少页拆分,比如经常有更新导致一个页无法存放记录而出现页拆分导致性能下降,根据你的情况选择。
数据表是别人建立的。应为是购买的系统,所以怕更改该了他的因子数会出现什么问题,