网站首页 > 技术文章 正文
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,其实原因在于之前遍历了所有的分区,现在只访问指定的分区。
猜你喜欢
- 2024-11-10 详解Oracle数据库is null和is not null在索引上的区别
- 2024-11-10 Oracle中会产生索引抑制的几种情况
- 2024-11-10 玩dotNetCore及EF6失败还是聊下Oracle索引吧
- 2024-11-10 如何“破解”Oracle数据库性能测试过程中索引使用问题?
- 2024-11-10 SQL查询慢,是因为没用对索引 sql语句查询慢 从哪些方面分析
- 2024-11-10 在Oracle中,索引有什么优点和缺点?
- 2024-11-10 Oracle 数据库索引扫描方式 oracle数据库索引查询
- 2024-11-10 Oracle 分区索引类型简述 oracle分区表索引是否失效
- 2024-11-10 Oracle 索引是一种单独的物理结构
- 2024-11-10 强制使用索引提高执行效率原因分析
你 发表评论:
欢迎- 09-06岂止于大,一文读懂大数据及其在推荐系统的应用
- 09-06你的生活自己掌控——《神谕女士》
- 09-06资深HR平时都读什么书?_资深的hr是怎么样的
- 09-06Oracle项目管理产品核心优势之项目全生命周期
- 09-06sql还有类型,大牛黑客必学,你也必须了解
- 09-06NoSQL 数据库的四大分类_nosql数据库的六大特性
- 09-06「干货」SQL分析函数,看这一篇就够了
- 09-04SQL 如何进行并集、交集、差集等集合运算
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)