Oracle7 Server Administrator's Guide

Contents Index Home Previous Next

Altering Clusters

You can alter an existing cluster to change the following settings:

To alter a cluster, your schema must contain the cluster or you must have the ALTER ANY CLUSTER system privilege.

When you alter data block space usage parameters (PCTFREE and PCTUSED) or the cluster size parameter (SIZE) of a cluster, the new settings apply to all data blocks used by the cluster, including blocks already allocated and blocks subsequently allocated for the cluster. Blocks already allocated for the table are reorganized when necessary (not immediately).

When you alter the transaction entry settings (INITRANS, MAXTRANS) of a cluster, a new setting for INITRANS applies only to data blocks subsequently allocated for the cluster, while a new setting for MAXTRANS applies to all blocks (already and subsequently allocated blocks) of a cluster.

The storage parameters INITIAL and MINEXTENTS cannot be altered. All new settings for the other storage parameters affect only extents subsequently allocated for the cluster.

To alter a cluster, use the SQL command ALTER CLUSTER. The following statement alters the EMP_DEPT cluster:

ALTER CLUSTER emp_dept
   PCTFREE 30
   PCTUSED 60;

Altering Cluster Tables and Cluster Indexes

You can alter clustered tables using the SQL command ALTER TABLE. However, any data block space parameters, transaction entry parameters, or storage parameters you set in an ALTER TABLE statement for a clustered table generate an error message (ORA-01771, "illegal option for a clustered table"). Oracle uses the parameters of the cluster for all clustered tables. Therefore, you can use the ALTER TABLE command only to add or modify columns, or add, drop, enable, or disable integrity constraints or triggers for a clustered table.

Note: When estimating the size of cluster indexes, remember that the index is on each cluster key, not the actual rows; therefore, each key will only appear once in the index.

Manually Allocating Storage for a Cluster

Oracle dynamically allocates additional extents for the data segment of a cluster as required. In some circumstances, however, you might want to allocate an additional extent for a cluster explicitly. For example, when using the Oracle Parallel Server, you can allocate an extent of a cluster explicitly for a specific instance.

You allocate a new extent for a cluster using the SQL command ALTER CLUSTER with the ALLOCATE EXTENT option.

See Also: For information about altering tables, see "Altering Tables" [*].

You alter cluster indexes exactly as you do other indexes. For more information, see "Altering an Index" [*].

For more information about the CLUSTER parameter in the ALTER CLUSTER command, see the Oracle7 Parallel Server Concepts & Administration guide.


Contents Index Home Previous Next