重组或重建索引后碎片率一直不变

shzhouhuiyu 2012-11-26 09:07:38
有些数据表对索引采取了以下操作,可是碎片率就一直不变,avg_fragmentation_in_percent值就是不变:
1)重组或重建,删掉再重建;
2)更新统计信息;
3)将数据表删掉重建表和索引,再insert。
请问是怎么回事?
...全文
3370 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxd4321 2013-06-21
  • 打赏
  • 举报
回复

如上,我重组了很多次,索引碎片都不会变。
数据量2000多条
potato0001 2013-06-01
  • 打赏
  • 举报
回复
网上搜到这个主题,跟帖请教一下:两千多万条数据的一个表,索引区扫描碎片90%以上,重建索引后逻辑碎片是下来了,但区扫描碎片基本不动,请问该怎么处理?
amwukddx 2013-03-12
  • 打赏
  • 举报
回复
引用 7 楼 x_wy46 的回复:
整理碎片,(从性能上说)对于小表基本上无效
确实如此,我也遇到楼主类似的问题,网上各种咨询,原来高手在这里。
shzhouhuiyu 2012-11-29
  • 打赏
  • 举报
回复
按照你这样理解,好像是说得通,呵呵。
引用 6 楼 x_wy46 的回复:
你的数据量有多少? 莫非是几十条或者几百条数据? 因为数据量小的时候,数据分布在混合区,重建或者重新生成索引,数据密度是不会变化的 除非数据量大的时候才有效。
专注or全面 2012-11-27
  • 打赏
  • 举报
回复
整理碎片,(从性能上说)对于小表基本上无效
专注or全面 2012-11-27
  • 打赏
  • 举报
回复
你的数据量有多少? 莫非是几十条或者几百条数据? 因为数据量小的时候,数据分布在混合区,重建或者重新生成索引,数据密度是不会变化的 除非数据量大的时候才有效。
發糞塗牆 2012-11-26
  • 打赏
  • 举报
回复
减少索引中的碎片 当索引分段的方式导致碎片影响查询性能时,有三种方法可减少碎片: 删除并重新创建聚集索引。 重新创建聚集索引将对数据进行重新分布,从而使数据页填满。填充度可以使用 CREATE INDEX 中的 FILLFACTOR 选项进行配置。这种方法的缺点是索引在删除和重新创建周期内为脱机状态,并且操作属原子级。如果中断索引创建,则不能重新创建索引。有关详细信息,请参阅 CREATE INDEX (Transact-SQL)。 使用 ALTER INDEX REORGANIZE(代替 DBCC INDEXDEFRAG)按逻辑顺序重新排序索引的叶级页。由于这是联机操作,因此在语句运行时仍可使用索引。中断此操作时不会丢失已经完成的任务。此方法的缺点是在重新组织数据方面不如索引重新生成操作的效果好,而且不更新统计信息。 使用 ALTER INDEX REBUILD(代替 DBCC DBREINDEX)联机或脱机重新生成索引。有关详细信息,请参阅 ALTER INDEX (Transact-SQL)。 不需要仅因为碎片的原因而重新组织或重新生成索引。碎片的主要影响是,在索引扫描过程中会降低页的预读吞吐量。这将导致响应时间变长。如果含有碎片的表或索引中的查询工作负荷不涉及扫描(因为工作负荷主要是单独查找),则删除碎片可能不起作用。有关详细信息,请参阅此 Microsoft 网站。
shzhouhuiyu 2012-11-26
  • 打赏
  • 举报
回复
很多表有这个情况,所以各种值都有。
引用 3 楼 shzhouhuiyu 的回复:
87.5 引用 1 楼 DBA_Huangzj 的回复: avg_fragmentation_in_percent的值是多少?
shzhouhuiyu 2012-11-26
  • 打赏
  • 举报
回复
87.5
引用 1 楼 DBA_Huangzj 的回复:
avg_fragmentation_in_percent的值是多少?
shzhouhuiyu 2012-11-26
  • 打赏
  • 举报
回复
87.5
引用 1 楼 DBA_Huangzj 的回复:
avg_fragmentation_in_percent的值是多少?
發糞塗牆 2012-11-26
  • 打赏
  • 举报
回复
avg_fragmentation_in_percent的值是多少?

22,294

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧