4

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

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); 

删除所有连接的表并不是我真正想要做的。
谢谢

4

1 回答 1

-1

您确实需要了解集群的真正含义。从文档

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

关键是,集群中的表是共同定位的。这是一种物理安排。因此,为了使数据库聚集现有表,我们必须删除并重新创建它们。

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

于 2011-10-09T08:10:50.663 回答