在oracle 11g上,可以在虚拟列上做分区,这个特性还比较有用,下面来做一个测试:
在oracle 11g上,可以在虚拟列上做分区,这个特性还比较有用,,下面来做一个测试:
sql> select * from v$version;
banner
--------------------------------------------------------------------------------
oracle database 11g enterprise edition release 11.2.0.1.0 - 64bit production
pl/sql release 11.2.0.1.0 - production
core 11.2.0.1.0 production
tns for linux: version 11.2.0.1.0 - production
nlsrtl version 11.2.0.1.0 - production
sql> drop table test purge;
sql> create table test
(bureau_code varchar2(20) not null,
province_code as (cast(substr(bureau_code,0,2) as varchar2(2)))
)
partition by list (province_code)
(
partition p1 values ('01'),
partition p2 values ('02'),
partition p3 values ('03'),
partition p4 values ('04'),
partition p5 values ('05')
);
sql> insert into test(bureau_code) values('0101');
sql> insert into test(bureau_code) values('0102');
sql> insert into test(bureau_code) values('0202');
sql> insert into test(bureau_code) values('0202');
sql> insert into test(bureau_code) values('0302');
sql> insert into test(bureau_code) values('0302');
sql> insert into test(bureau_code) values('0402');
sql> insert into test(bureau_code) values('0502');
sql> commit;
sql> select * from test partition(p1);
bureau_code pr
-------------------- --
0101 01
0102 01
sql> set autotrace traceonly
sql> select * from test partition(p1);
执行计划
----------------------------------------------------------
plan hash value: 213508695
----------------------------------------------------------------------------------------------
| id | operation | name | rows | bytes | cost (%cpu)| time | pstart| pstop |
----------------------------------------------------------------------------------------------
| 0 | select statement | | 2 | 30 | 4 (0)| 00:00:01 | | |
| 1 | partition list single| | 2 | 30 | 4 (0)| 00:00:01 | 1 | 1 |
| 2 | table access full | test | 2 | 30 | 4 (0)| 00:00:01 | 1 | 1 |--证明是走了分区的
----------------------------------------------------------------------------------------------
note
-----
- dynamic sampling used for this statement (level=2)
统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
8 consistent gets
0 physical reads
0 redo size
434 bytes sent via sql*net to client
338 bytes received via sql*net from client
2 sql*net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
2 rows processed
本文永久更新链接地址: