ITPub博客

首页 > 数据库 > Oracle > 集群表

集群表

原创 Oracle 作者:guse520 时间:2009-06-16 08:59:23 0 删除 编辑

一、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名字,

[@more@]

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

上一篇: 常见错误
下一篇: 分区表
请登录后发表评论 登录
全部评论

注册时间:2008-04-08

  • 博文量
    8
  • 访问量
    3994