Oracle® Database Administrator's Guide 11g Release 2 (11.2) Part Number E10595-06 |
|
|
View PDF |
To create a cluster in your schema, you must have the CREATE CLUSTER
system privilege and a quota for the tablespace intended to contain the cluster or the UNLIMITED TABLESPACE
system privilege.
To create a cluster in another user's schema you must have the CREATE ANY CLUSTER
system privilege, and the owner must have a quota for the tablespace intended to contain the cluster or the UNLIMITED TABLESPACE
system privilege.
You create a cluster using the CREATE CLUSTER
statement. The following statement creates a cluster named emp_dept
, which stores the emp
and dept
tables, clustered by the deptno
column:
CREATE CLUSTER emp_dept (deptno NUMBER(3)) SIZE 600 TABLESPACE users STORAGE (INITIAL 200K NEXT 300K MINEXTENTS 2 PCTINCREASE 33);
If no INDEX
keyword is specified, as is true in this example, an index cluster is created by default. You can also create a HASH
cluster, when hash parameters (HASHKEYS
, HASH IS
, or SINGLE TABLE HASHKEYS
) are specified. Hash clusters are described in Chapter 22, "Managing Hash Clusters".
To create a table in a cluster, you must have either the CREATE TABLE
or CREATE ANY TABLE
system privilege. You do not need a tablespace quota or the UNLIMITED TABLESPACE
system privilege to create a table in a cluster.
You create a table in a cluster using the CREATE TABLE
statement with the CLUSTER
clause. The emp
and dept
tables can be created in the emp_dept
cluster using the following statements:
CREATE TABLE emp ( empno NUMBER(5) PRIMARY KEY, ename VARCHAR2(15) NOT NULL, . . . deptno NUMBER(3) REFERENCES dept) CLUSTER emp_dept (deptno); CREATE TABLE dept ( deptno NUMBER(3) PRIMARY KEY, . . . ) CLUSTER emp_dept (deptno);
Note:
You can specify the schema for a clustered table in theCREATE TABLE
statement. A clustered table can be in a different schema than the schema containing the cluster. Also, the names of the columns are not required to match, but their structure must match.See Also:
Oracle Database SQL Language Reference for syntax of theCREATE TABLE
statement for creating cluster tablesTo create a cluster index, one of the following conditions must be true:
Your schema contains the cluster.
You have the CREATE ANY INDEX
system privilege.
In either case, you must also have either a quota for the tablespace intended to contain the cluster index, or the UNLIMITED TABLESPACE
system privilege.
A cluster index must be created before any rows can be inserted into any clustered table. The following statement creates a cluster index for the emp_dept
cluster:
CREATE INDEX emp_dept_index ON CLUSTER emp_dept TABLESPACE users STORAGE (INITIAL 50K NEXT 50K MINEXTENTS 2 MAXEXTENTS 10 PCTINCREASE 33);
The cluster index clause (ON CLUSTER
) identifies the cluster, emp_dept
, for which the cluster index is being created. The statement also explicitly specifies several storage settings for the cluster and cluster index.
See Also:
Oracle Database SQL Language Reference for syntax of theCREATE INDEX
statement for creating cluster indexes