一、index cluster
1、create cluster mycluster (deptno number(2)) size 1024;
---deptno:列名,1024,1个8K的block能放8k/1024字节 (8)条记录
---不算头文件共7条,如果不设置的话,默认是1条,如果 是 小表的话会很浪费。
2、create index myc_idx on cluster mycluster;--
3、 create table deptt(deptid number(2) primary key,
dname varchar2(3))
cluster mycluster(deptid);
4、 create table empp(empid number primary key,
ename varchar2(3),
deptno number(2) references dept(deptid)
)
cluster mycluster(deptno)
--------和cluster挂钩,适合,where a.id=b.id an a.id<10的,减少io,不用join了,物理上就已经join了
--------除非size设置小了,将增加io,将抵消cluster的优势
二、hash cluster( 适合相等的值,如 id=10 ,不适合〉或<的,表更新时少)
1、设置块的大小,减少碰撞,id=10和id=12都可能放在block=100的上,当放不下时将产生block链表,会增加io。
create cluster hc (hk number) hashkeys 1000 size 8192; ---1000:hash 表的长度是1000,1个块里放8k/8192条记录,分配1000块
--------静态分配的,show_space;查找segment空间大小,调用dbms_space.space_usage
------做完procedure后,exec show_space('HC','u1','cluster')---hc:segement名字,
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/152632/viewspace-1023165/ ,如需转载,请注明出处,否则将追究法律责任。