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

问题描述 投票:3回答:1

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

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

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

database oracle alter-table database-cluster
1个回答
-2
投票

你真的需要了解集群到底是什么。来自the docs

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.