12.读书笔记收获不止Oracle之 索引分区表
来源:互联网 发布:巨人城刷龙啸翻牌软件 编辑:程序博客网 时间:2024/04/20 08:59
12.读书笔记收获不止Oracle之 索引分区表
普通堆表操作的不足之处:执行select * from t where id=1.
先从索引中获取rowid,然后定位到表中,获取id以外的其他列的动作,这就是回表。
如何不进行回表?
采用索引组织表。
来看个例子,创建堆表:
create table heap_addresses
(empno number(10),
addr_type varchar2(10),
street varchar2(10),
city varchar2(10),
state varchar2(2),
zip number,
primary key(empno)
);
创建索引组织表:
create table iot_addresses
(empno number(10),
addr_type varchar2(10),
street varchar2(10),
city varchar2(10),
state varchar2(2),
zip number,
primary key(empno)
)
Organization index;
往堆表插入:
SQL> insert into heap_addresses selectobject_id,'WORK','123street','washington','DC',20123 from all_objects;
89752 rows created.
往索引组织表插入:
SQL> insert into iot_addresses selectobject_id,'WORK','123street','washington','DC',20123 from all_objects;
然后commit;
进行性能测试对比:
Set linesize 1000
Set autotrace traceonly
Select * from heap_addresses where empno=22;
Execution Plan
----------------------------------------------------------
Plan hash value: 2900288143
----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------
| 0| SELECT STATEMENT | | 1 | 50 | 1 (0)| 00:00:01 |
| 1| TABLE ACCESS BY INDEX ROWID|HEAP_ADDRESSES | 1 | 50 | 1 (0)| 00:00:01 |
|* 2| INDEX UNIQUE SCAN | SYS_C0010415 | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
2- access("EMPNO"=22)
Statistics
----------------------------------------------------------
1 recursive calls
0 dbblock gets
4 consistent gets
0 physical reads
132 redo size
770 bytes sent via SQL*Net to client
540 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rowsprocessed
再执行索引组织表:
Select * from iot_addresseswhere empno=22;
Execution Plan
----------------------------------------------------------
Plan hash value: 826554505
---------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------------------
| 0| SELECT STATEMENT | | 1 | 50 | 1 (0)|00:00:01 |
|* 1| INDEX UNIQUE SCAN| SYS_IOT_TOP_93653| 1 | 50 | 1 (0)| 00:00:01 |
---------------------------------------------------------------------------------------
Predicate Information (identified byoperation id):
---------------------------------------------------
1- access("EMPNO"=22)
Statistics
----------------------------------------------------------
1 recursive calls
0 dbblock gets
2 consistent gets
0 physical reads
0 redosize
910 bytes sent via SQL*Net to client
551 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rowsprocessed
普通表有:TABLE ACCESS BY INDEX ROWID ,索引组织表没有。
索引组织表的最大特性,就是表就是索引,索引就是表,是一种很特别的设计,无须访问表。
不过表的更新要比普通表开销更大。因为表要和索引一样有序地排列,更新负担将会非常严重。这种设计使用再很少更新、频繁读的应用场合。
- 12.读书笔记收获不止Oracle之 索引分区表
- 14.读书笔记收获不止Oracle之 索引
- 10.读书笔记收获不止Oracle之 表设计之分区表
- 15.读书笔记收获不止Oracle之 索引高度
- 16.读书笔记收获不止Oracle之 分区索引
- 17.读书笔记收获不止Oracle之 索引存储列值
- 21.读书笔记收获不止Oracle之 索引回表效率
- 22.读书笔记收获不止Oracle之 索引特性活用
- 23.读书笔记收获不止Oracle之 组合索引
- 24.读书笔记收获不止Oracle之 索引的危害
- 25.读书笔记收获不止Oracle之 位图索引
- 26.读书笔记收获不止Oracle之 位图索引即席查询
- 27.读书笔记收获不止Oracle之 位图索引更新
- 28.读书笔记收获不止Oracle之 函数索引
- 【读书笔记】【收获,不止Oracle】索引组织表
- 1.读书笔记收获不止Oracle之开篇
- 2.读书笔记收获不止Oracle之 意识
- 13.读书笔记收获不止Oracle之 簇表
- 9.读书笔记收获不止Oracle之 表设计
- 【Linux】文件类型
- 10.读书笔记收获不止Oracle之 表设计之分区表
- java中的关于时间的概念
- 11.读书笔记收获不止Oracle之 表设计之分区使用
- 12.读书笔记收获不止Oracle之 索引分区表
- web.xml
- 13.读书笔记收获不止Oracle之 簇表
- Ubuntu内核升级以及如何开启BBR加速
- 设计模式之策略模式
- 聊聊PhoneWindow,getDecorView(),setContentView
- 14.读书笔记收获不止Oracle之 索引
- 关于反码,byte最大值127,最小值-128的由来缘由以及书本上从未讲解过的反码补码功能作用
- USB接口的功能和区分全解析