生产环境是否需对频繁在索引列上进行dml语句进行rebuild?

请问,生产环境是否需要对频繁在索引列上面进行dml语句进行rebuild?  我做了一个测试,在索引列上进行update操作,开始进行2此索引是在增长,但是又做了几次delete和update发现索引的大小没有改变,这是为什么呢?...显示全部
请问,生产环境是否需要对频繁在索引列上面进行dml语句进行rebuild?  我做了一个测试,在索引列上进行update操作,开始进行2此索引是在增长,但是又做了几次delete和update发现索引的大小没有改变,这是为什么呢?收起
参与12

查看其它 6 个回答royalwzy的回答

royalwzyroyalwzy技术经理海通证券股份有限公司
所以对于1来说
当插入/更新/删除操作会导致索引随着索引的分割和增长不断发展。

重建索引后,它将连接的更为紧凑;但是,随着对表不断执行 DML 操作,必须再次分割索引,直到索引达到平衡为止。

结果,重做活动增加,且索引分割更有可能对性能产生直接影响,因为我们需要将更多的 I/O、CPU 等用于索引重建。

经过一段时间后,索引可能会再次遇到“问题”,因此可能会再被标记为重建,从而陷入恶性循环。

因此,通常最好是让索引处于自然平衡和(或)至少要防止定期重建索引。
所以我认为极少需要重建 B 树索引,基本原因是 B 树索引很大程度上可以自我管理或自我平衡。
证券 · 2015-06-12
浏览963

回答者

royalwzy
技术经理海通证券股份有限公司
擅长领域: 数据库服务器存储

royalwzy 最近回答过的问题

回答状态

  • 发布时间:2015-06-12
  • 关注会员:0 人
  • 回答浏览:963
  • X社区推广