我有一个系统,用数百万条记录填充空数据库。
数据库有各种类型的索引,我担心的是:
因此,当数据被大量插入时,这些指数存在显着的碎片。
问题1 :如果我在创建数据库时将FILLFACTOR = 75设置为这些索引,那么在插入数据时它是否会产生任何影响?在之前数据创建之后,似乎FILLFACTOR的效果。或者是否会使用原始fillfactor设置分配新的索引页面?
问题2 :我可以使用哪些其他推荐策略来确保这些指数达到最佳效果?
答案 0 :(得分:1)
<强>问题1:强>
填充因子仅在重建索引时使用,SQL在尝试插入时不会尝试根据填充因子存储页面。
<强>问题2:强>
这取决于你所说的最优。在一个最小的你可以检查你的索引是否有用,你的查询是否使用你的索引。有很多关于索引的最佳实践,如选择性第一键,小键..
从Kimberly Tripp和DBA.SE
中搜索索引的任何内容都很有用 <强>参考文献:强>
http://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-2530-fill-factor/
http://www.sqlskills.com/blogs/kimberly/category/indexes/
答案 1 :(得分:0)
检查索引碎片以及写入/读取比率。如果写入/读取比率非常高并且您看到碎片,则可以尝试在索引重建操作期间添加fillfactor。
填充因子的数量实际上取决于您所看到的碎片。如果您看到0-20%的碎片(这些碎片发生在一段时间内),您可能不需要任何填充因子。如果您看到20-40%的碎片,您可以尝试90%。
最后获得一个很好的索引维护计划。 Ola Hallengren's index script很棒。 注意:以上建议只是建议 - 您的