hash 分区 测试!

hash分区 可以有效的将表的数据进行均匀分布,对于查询来说,分区过滤可以大大的降低逻辑IO,从而提高查询性能。

下面进行测试:

[@more@]

create table TEST
(
ID NUMBER,
NAME VARCHAR2(10)
)
partition by hash (ID)
(
partition SYS_P1
tablespace SYSTEM,
partition SYS_P2
tablespace SYSTEM,
partition SYS_P3
tablespace SYSTEM,
partition SYS_P4
tablespace SYSTEM
)
;
-- 4个hash 分区
SQL> desc test
名称 是否为空? 类型
----------------------------------------- -------- ----------------
ID NUMBER
NAME VARCHAR2(10)

--插入100条记录

SQL> begin
2 for i in 1..100 loop
3 insert into test values(i,'a');
4 end loop;
5 commit;
6 end;
7 /

PL/SQL 过程已成功完成。

SQL> select substr(get_rowid(rowid),20,2),count(1) from test group by substr(get_rowid(rowid),20,2);

SUBSTR(G COUNT(1)
-------- ----------
92 20
93 28
94 25
95 27

--看到4个分区的数据基本上是均匀分布的

--进行查询,测试分区过滤

SQL> exec dbms_stats.gather_table_stats(user,'TEST',cascade=>true);

PL/SQL 过程已成功完成。

SQL> explain plan for select * from test where id=12;

已解释。

SQL> select * from table(dbms_xplan.display());

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------


------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost | Pstart| Pstop |
------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 5 | 2 | | |
|* 1 | TABLE ACCESS FULL | TEST | 1 | 5 | 2 | 2 | 2 |
------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - filter("TEST"."ID"=12)

Note: cpu costing is off

已选择14行。

SQL>

--有效的过滤了分区

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/19015/viewspace-907615/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/19015/viewspace-907615/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值