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数据库检查索引碎片和重建索引的知识,希望对你有所帮助。
猜你喜欢
Guessyoulike