1. 散列簇是使用散列函数定位行的位置,通过散列簇,可以将静态表的数据均匀地分布到数据块中。将表组织到散列簇后,如果在WHERE子句中引用簇健列,Oracle会根据散列函数结果定位表行数据。合理地使用散列簇。
2. 使用散列表的指导方针
1) 如果经常在等值查询中使用簇健列(SELECT 。。。 WHERE cluster_key=…),可以将表组织到散列簇;如果经常在范围查询中引用特定列(SELECT 。。。 WHERE cluster_key>…),则不应将表组织到散列簇。
2) 如果表数据是静态的,可以考虑将该表组织到散列簇;如果表数据变化非常频繁,使用散列簇是不合理的。
3. 建立散列簇
CREATE CLUSTER employee_clu(id NUMBER(4))
SIZE 500 HASHKEYS 1000 HASH is MOD(id,1000)
TABLESAPCE user01;
建立簇表
CREATE TABLE emp1(
id NUMBER(4),name VARCHAR2(30),sal NUMBER(6,2)
)CLUSTER employee_clu(id);
4. 显示簇信息
建立索引簇或者散列簇后,Oracle会将簇的相关信息存放到数据字典中,通过查询数据字典视图可以显示簇信息。
SELECT cluster_name,tablespace_name FROM dba_clusters WHERE owner=’SCOTT’;