老男人百科 > 百科 > 正文

oracle如何周期性重建索引(oracle重建索引有什么影响)

2023-04-29 18:41:23 阅读( 5804)

当索引的碎片过多时,会影响执行查询的速度,从而影响到我们的工作效率。

当索引中碎片过多时,会影响执行查询的速度,从而影响我们的工作效率。这时候最有利的措施就是重建指数。本文主要介绍了在oracle数据库中检查索引碎片和重建索引的过程。

接下来,我们将开始介绍这个过程。重建索引的步骤如下:

1.确认基本信息

登录数据库,找到一个专门存储索引的表空间。

并且该表空间中所有索引的所有者都是tax。将索引存储在独立的表空间中是一种常见的数据库设计方法,该表空间与数据表的表空间相分离。

2. 查找哪些index需要重建

通过分析索引的命令.验证结构,可以分析单个指定的索引,单个索引分析的结果可以存储在index_stats下。一般判断基于:

height 4 pct_used 50% del_lf_rows/lf_rows +0.001 0.03 g )3. google上下载了遍历所有index脚本

我发现lyze指数.Validate structure只能填写单个索引分析信息,于是google从网上下载了一个循环脚本,遍历了索引空间中的所有索引名。

并且指数的所有分析信息都可以存储在自己建立的用户表中。4. anlyze index 锁定index

发现下载的脚本不好用,因为anlyze索引在分析索引之前要争取独占锁,锁索引。显然,有些索引正在被应用程序系统使用,所以运行anlyze失败了。这里的教训是尝试在晚上这样做。

但是,我更喜欢按时回家,所以我在语句中添加了异常处理程序,并抛出那些执行anlyze index失败的索引名,这样脚本就可以正常运行了。

并根据打印到前台的索引名称手动执行这些索引分析。5. 总结

虽然发现522个指数中有160个符合上述判断的依据。但是发现指数都不大,那些百万叶的指数不满足上述判断条件。

所以结论是不需要在线重建索引。没有碎片。6.什么时候可以rebuild index呢?

在线重建索引对于具有大量DML操作的大型索引非常有用。大型索引的重建可以每月或每季度进行一次。通常,即使在线重建索引也会导致I/O争用。

所以有没有上线意义不大。可以放在3-5个晚上,批量执行重建索引,锁定索引,不要让用户使用(没有用户等待的时候),加上关键字paralle 8。

应该发现数据库服务器有8个cpu处理器。

这里介绍一下关于Oracle数据库检查索引碎片和重建索引的知识,希望对你有所帮助。

专题页