oracle数据库如何重建索引

oracle数据库如何重建索引,第1张

索引的碎片过多时 会影响执行查询的速度 从而影响到我们的工作效率 这时候采取的最有利的措施莫过于重建索引了 本文主要介绍了Oracle数据库中检查索引碎片并重建索引的过程 接下来我们就开始介绍这一过程

重建索引的步骤如下

确认基本信息

登入数据库 找到专门存放index 的tablespace 并且这个tablespace下所有index的owner都是tax 将index专门存放在一个独立的tablespace 与数据表的tablespace分离 是常用的数据库设计方法

查找哪些index需要重建

通过anlyze index validate structure命令可以分析单个指定的index 并且将单个index 分析的结果存放到 index_stats试图下 一般判断的依据是

height > pct_used < % del_lf_rows / lf_rows + > g )

google上下载了遍历所有index脚本

发现anlyze index validate structure只能填充单个index分析信息 于是google了下 从网上下了个Loop 脚本 遍历索引空间下所有的索引名字 并且可以把所有index的分析信息存放到自己建立的一个用户表中

anlyze index 锁定index

发现下载的脚本不好用 应为anlyze index在分析索引前要争取独占锁 锁住index 很明显有些index正在被应用系统的使用 所以运行anlyze失败 这里吸取的教训是 尽量晚上做这种事 但是本人比较喜欢准时回家 所以在语句中添加Exception Handler 抛出anlyze index执行失败的那些index 名称 使脚本正常运行完毕 并且根据打印到前台的index name手动执行那些index分析

总结

虽然发现 个index中有 个符合上面的判断的依据 但是发现索引都不大 而那些拥有百万leaf的索引又没有符合上面的判断条件 所以结论是无需index rebuild online 没有啥碎片

什么时候可以rebuild index呢

rebuild index online 对那些有大量DML *** 作的大索引是有益的 可以每个月季度做一次针对较大索引的rebuild 通常哪怕rebuild index online也会造成I/O争用 所以有无online意义不大 可以放到 个晚上 分批执行rebuild index 锁定index 不让用户用(没有用户等入的时候) 并且加上paralle 关键字 应为发现数据库服务器有 个cpu processors

lishixinzhi/Article/program/Oracle/201311/19014

dbf文件不能删除。

如果直接删除dbf文件会导致oracle服务异常,从而无法正常使用该数据库。

如果dbf文件增长过大,应该是设置了数据库文件自动增长。

可以在所属表空间下新增dbf文件,然后将users01dbf的自增长选项关闭,这样users01dbf就不会继续增长,新数据都会写入到新建的dbf文件中去。

以上就是关于oracle数据库如何重建索引全部的内容,包括:oracle数据库如何重建索引、oracle 10g 系统数据库USERS01.DBF增长过大,能不能删除重建、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9353459.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存