将集群添加到oracle中的现有表

时间:2011-10-09 00:26:13

标签: database oracle alter-table database-cluster

是否可以将群集添加到现有表中?例如......
我有一张桌子:

CREATE TABLE table_name(  
t_id number PRIMARY KEY,  
t_name varchar2(50));   

集群:

CREATE CLUSTER my_cluster
(c_id NUMBER) SIZE 100;

是否有像ALTER TABLE t_name ADD CLUSTER my_cluster(t_id);之类的命令或类似的东西? 因为我希望表看起来像这样:

CREATE TABLE table_name(  
t_id number PRIMARY KEY,  
t_name varchar2(50))  
CLUSTER my_cluster(t_id); 

丢弃所有连接的表并不是我想要做的 感谢

1 个答案:

答案 0 :(得分:-2)

您真的需要了解群集的真正含义。来自the docs

  

“群集是物理存储的一个或多个表的组   在一起,因为它们共享通用列并经常使用   一起。因为相关的行是物理存储在一起的磁盘   访问时间有所改善。“(强调我的)

关键是,群集中的表格位于同一地点。这是一种物理安排。因此,要使数据库集群现有表,我们必须删除并重新创建它们。

通过以不同的名称构建聚簇表,可以最大限度地减少停机时间。在准备交换之前,您需要将数据与实时表保持同步。执行此操作时,您需要限制对数据库的访问,以防止数据丢失。然后重命名旧表,使用正确的名称重命名聚簇表,运行必要的授权并重新编译无效的过程,同义词等。