当索引过于碎片化时,会影响查询执行的速度,从而影响我们的工作效率。这时候最有利的措施就是重建指数。本文主要介绍了oracle数据库中检查索引碎片和重建索引的过程,接下来我们将开始介绍这个过程。
重建索引的步骤如下:
1.确认基本信息
登录数据库,找到专门存储索引的表空间,这个表空间下所有索引的所有者都是tax。将索引存储在独立的表空间中,与数据表的表空间分开,这是一种常见的数据库设计方法。
2.找到需要重建的索引。
您可以通过命令“分析索引”来分析单个指定的索引.validate structure”,并在index_stats尝试下存储单个索引分析的结果。一般判断基于:
高度4%已用50% del _ lf _ rows/lf _ rows 0.001 0.03克)
3.google下载了遍历所有索引的脚本。
我发现在一个分析指标中只能填写一个指标分析信息.Validate Structure,于是我google了一下,从网上下载了一个循环脚本,遍历了索引空间中的所有索引名,将index的所有分析信息存储在我创建的一个用户表中。
4.分析索引锁定索引
下载的脚本不好用,因为anlyze索引在分析索引之前要获得独占锁,而且很明显有些索引正在被应用系统使用,所以运行anlyze失败。这里的教训是尝试在晚上这样做。但是,我更喜欢按时回家,所以我在语句中添加了异常处理程序,并抛出那些执行anlyze index失败的索引名,这样脚本就可以正常运行了。并根据打印到前台的索引名称手动执行这些索引分析。
5.摘要
虽然发现522个中有160个指数符合上述判断。但是发现索引不大,那些百万叶的索引不满足上述判断条件,所以结论是不需要在线重建索引。没有碎片。
6.什么时候可以重建索引?
联机重建索引,这有利于具有大量DML操作的大型索引。您可以在每个季度重建一个大型索引。通常即使在线重建索引也会造成I/O争用,所以有没有在线意义不大。可以放上3-5个晚上,批量执行重建索引,锁定索引,防止用户使用(没有用户等待的时候)。此外,添加paralle 8关键字,您应该会发现数据库服务器有8个cpu处理器。
这里介绍了关于Oracle数据库检查索引碎片和重建索引的知识,希望能对你有所帮助。