Oracle 降序索引
来源:互联网 发布:炒股软件使用书籍 编辑:程序博客网 时间:2024/05/29 18:15
降序索引
降序索引是8i里面新出现的一种索引,是B*Tree的另一个衍生物,它的变化就是列在索引中的储存方式从升序变成了降序,在某些场合下降序索引将会起作用。举个例子,我们来查询一张表并进行排序:
SQL> select * from test where a between 1 and 100 order by a desc,b asc;
已选择100行。
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=100 Bytes=400)
1 0 SORT(ORDER BY)(Cost=2 Card=100 Bytes=400)
2 1 INDEX (RANGE SCAN) OF 'IND_BT' (NON-UNIQUE) (Cost=2 Card=100 Bytes=400)
这里优化器首先选择了一个索引范围扫描,然后还有一个排序的步骤。如果使用了降序索引,排序的过程会被取消。
SQL> create index test.ind_desc on test.testrev(a desc,b asc);
索引已创建。
SQL> analyze index test.ind_desc compute statistics;
索引已分析
再来看下执行路径:
SQL> select * from test where a between 1 and 100 order by a desc,b asc;
已选择100行。
Execution Plan(SQL执行计划,稍后会讲解如何使用)。
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=100 Bytes=400)
1 0 INDEX (RANGE SCAN) OF 'IND_DESC' (NON-UNIQUE) (Cost=2 Card=100 Bytes=400)
我们看到排序过程消失了,这是因为创建降序索引时Oracle已经把数据都按降序排好了。
另外一个需要注意的地方是要设置init.ora里面的compatible参数为8.1.0或以上,否则创建时desc关键字将被忽略。
降序索引是8i里面新出现的一种索引,是B*Tree的另一个衍生物,它的变化就是列在索引中的储存方式从升序变成了降序,在某些场合下降序索引将会起作用。举个例子,我们来查询一张表并进行排序:
SQL> select * from test where a between 1 and 100 order by a desc,b asc;
已选择100行。
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=100 Bytes=400)
1 0 SORT(ORDER BY)(Cost=2 Card=100 Bytes=400)
2 1 INDEX (RANGE SCAN) OF 'IND_BT' (NON-UNIQUE) (Cost=2 Card=100 Bytes=400)
这里优化器首先选择了一个索引范围扫描,然后还有一个排序的步骤。如果使用了降序索引,排序的过程会被取消。
SQL> create index test.ind_desc on test.testrev(a desc,b asc);
索引已创建。
SQL> analyze index test.ind_desc compute statistics;
索引已分析
再来看下执行路径:
SQL> select * from test where a between 1 and 100 order by a desc,b asc;
已选择100行。
Execution Plan(SQL执行计划,稍后会讲解如何使用)。
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=2 Card=100 Bytes=400)
1 0 INDEX (RANGE SCAN) OF 'IND_DESC' (NON-UNIQUE) (Cost=2 Card=100 Bytes=400)
我们看到排序过程消失了,这是因为创建降序索引时Oracle已经把数据都按降序排好了。
另外一个需要注意的地方是要设置init.ora里面的compatible参数为8.1.0或以上,否则创建时desc关键字将被忽略。
- Oracle 降序索引
- Oracle 降序索引
- Oracle 降序索引
- oracle 降序索引
- Oracle 编程艺术--降序索引读书笔记
- 降序索引
- 关于Oracle降序索引的定意及回溯
- Oracle 11.2.0.1.0中降序索引的bug
- 索引的升序 降序
- 12.4.4 降序索引
- 降序索引浅析
- Oracle 索 引 的 分 类 :降序索引和位图索引
- 关于索引的降序排列
- MYSQL 降序索引和减轻索引扫描
- 降序索引和减轻索引扫描
- 降序索引和减轻索引扫描
- 各种索引的结构分析 降序索引和位图索引
- oracle 默认是升序还是降序
- bzImage与vmlinux
- ORAC RAC NTP时间服务器 配置 RVF-5436 : 在一个或多个节点上运行的 NTP 守护程序缺少快速定向选项 "-x"
- 【项目管理】项目实战笔记之四:团队建设(尊重)
- TPS51200简介
- Android页面交互Activity组件(上)
- Oracle 降序索引
- 因服务器而导致的蜘蛛抓取失败怎么办
- WEB应用之: JS this 指针+作用域链+原型链
- 印度人英语
- Android Binder设计与实现
- CentOS6.2系统上部署Xen4.1.2虚拟机
- 静态绑定和动态绑定
- 2012-2-25面试题目
- CVE-2012-0158 MSCOMCTL控件漏洞分析