Oracle索引1--B树索引倒序扫描
来源:互联网 发布:js全角数字转半角 编辑:程序博客网 时间:2024/06/05 22:48
Oracle索引1--B树索引倒序扫描
在日常工作中会遇到某些查询,需要将最晚时间点数据显示在前面,然而这个表的数据量比较大可能是100G,500G,甚至更大,此时如果使用常规的order肯定查询不出来,Oracle提供了索引倒序扫描,然后能快速查询出结果集。
为什么倒序扫描会比较快,实际很简单,当数据插入进表时,oracle已经为索引键值排好序了(前导列排序),从左往右是按小到大排序的,那么一般扫描索引时也是从左往右扫描的,当需要将最大的时间数据在前面显示时几乎需要将整个索引全部扫描(有时会自动倒序扫描),这样IO肯定吃不消,效率很低。
那么,只能倒序扫描了。
写法很简单,只需要使用hint就行了,如:
select * from (
select * from (
select /* index_desc(t,索引名称)*/ t.* ,rownum rn from table_name t where t.time_ > xxx and t.time_ < xxx) where rn < 100) where rn > 50;
这是Oracle的分页写法,应该是比较标准的,分页一般就是这么写法。
另一种方式就是创建一个倒序索引,如:
create index t_idx on table_name(time_ desc ,name_);
这种创建时,索引最左边的值就是最晚的时间插入的数据,好像数据就是往左增长一样,此时索引从左往右扫描的时候就是最大的时间了,也是比较实用的。
具体例子不在阐述,知道原理就行了,使用这种特性解决了大表的查询慢问题。
0 0
- Oracle索引1--B树索引倒序扫描
- oracle 5种b*树索引扫描方式
- oracle B树索引
- Oracle 执行计划(5)—cost成本之索引范围扫描-B树索引
- [Oracle]B-树索引与位图索引
- oracle 位图索引 B-树索引
- Oracle索引——B树索引
- oracle随笔-Index (B*树索引-1)
- oracle索引扫描
- Oracle索引扫描算法
- Oracle索引,B树索引、哈希索引等
- ORACLE B树索引概念
- oracle之B树索引
- oracle索引:B*树索引、位图索引(bitmap)、基于函数的索引、应用域索引
- 高手闲谈Oracle索引扫描
- Oracle - 怎样使用B树索引和位图索引
- Oracle - 怎样使用B树索引和位图索引
- Oracle - 怎样使用B树索引和位图索引
- 1.2-3 求整数的平均值
- 0-1背包
- FT232驱动安装不成功的解决方案
- cf中的一道二分题
- 检查tomcat是否已经启动命令
- Oracle索引1--B树索引倒序扫描
- ubuntu 下eclipse无法输入中文的解决思路
- JVM的垃圾回收简单认识
- 利用广播实现强制下线功能
- 洛谷 1073_最优贸易_spfa+dfs
- 大三软件工程小项目-小技术集合-Qt状态栏设置
- STM32
- JavaScript 正则表达式RegExp(text方法/内部类/边界/量词/优先级/replace/trim)
- 深度学习(5):Boltzmann Machine