网站首页 > 数据库 / 正文
1.索引缘何频频失效
分区表的不当操作导致分区索引失效,
STATUS是N/A的表示是局部索引
分区truncate操作,看看索引是否会失效,参见脚本4-46:
对索引进行了重建工作,以让索引生效:
分区表的分区操作,对局部索引一般都没有影响,但是对全局索引影响比较大。
Oracle在提供这些分区操作时提供了一个很有用的参数update globalindexes,可以有效地避免全局索引失效。这个参数的本质是,在分区操作做完后,暗暗执行索引重建的工作。
其他分区操作,如分区转移、切割、合并、增删等,和这个分区 truncate是类似的,都允许增加update global indexes关键字,从而避免全局索引失效。
2.有索引效率反而更低
设计不当产生的性能问题。
对其中的id列建一个局部索引,然后对norm_tab表的id列也建一个索引。
针对类似select * from norm_tabwhere id=888;分区表查询是否比普通表更快:
普通表的查询情况:
普通表查询的性能好,分区表的逻辑读是240,而普通表才4。分区表的Cost是15,而普通表的Cost为2。索引的高度一般比较低。
无法应用分区条件
在设计分区时,往往没有预先规划好如何应用分区,这是不对的。操作的是分区表,却不用分区条件,从而无法做到分区消除,这就浪费了分区表的宝贵特性,应该避免出现类似情况。
性能提升了许多,逻辑读从原来的240瞬间降到3,其实原因在于之前遍历了所有的分区,现在只访问指定的分区。
Tags:表分区 oracle
猜你喜欢
- 2024-11-26 oracle大数据量更新引发的死锁问题解决方法
- 2024-11-26 Oracle技术栈之"数据库服务器的swap分区" 配置参考
- 2024-11-26 运维实战:Linux系统扩展oracle数据库所在的分区
- 2024-11-26 千万级数据,如何做性能优化?分库分表、Oracle分区表?
- 2024-11-26 Oracle数据库性能优化指南:从SQL调优到表分区,全面提升
- 2024-11-26 oracle已有表的分表分区优化操作步骤(单表过大)
- 2024-11-26 Oracle 分区索引类型简述
- 2024-11-26 Oracle 表分区在线重定义
- 2024-11-26 ORACLE优化之SQL篇
- 2024-11-26 Oracle数据库之索引、分区