暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBASE关于ATTACH的限制的一些分享

GBASE数据库 2023-03-15
191

ATTACH 子句的一般限制

此子句在 ALTER FRAGMENT ON INDEX 语句中无效。

您连接的任何表必须先前已在独立的分区中创建。您不能将同一个表连接多次。 ATTACH 子句中所列的所有死表(consumed table)必须具有同活表(surviving table)相同的结 构。列的数目、名称、数据类型和相对位置必须相同。

expression 不能包含聚集、子查询、或变体函数。

ATTACH 子句的其他限制

对 ROW 类型列字段的用户定义的例程和引用是无效的。您不能将一个分片表连接到另一个分片 表。

所有存储分片的 dbspace 必须拥有相同的页面大小。

对两个分片表的 ATTACH 操作无法产生按区间或列表分片的活表(GBase_8t surviving table)。 (如果您要连接两个非分片的表,使用 ALTER FRAGMENT 的 INIT 操作为其中一个非分片表定 义其区间或列表分片结构,然后使用 ATTACH 选项连接第二个表。)

对于按区间分片的活表(surviving tables),有以下限制:

⚫ 由于数据库服务器决定区间分片的初始位置,所以 BEFORE 和 AFTER 指定无效。

⚫ 您无法连接表达式符合现有区间分片表达式的分片。

⚫ 当连接的分片超过事务值,要连接的分片的上限必须位于区间分片的界限。就是说,分片 的上限值必须等于事务值乘以区间值的整数倍。

对于受同一安全策略保护的分片表,如果以下任一条件不满足,那么连接分片到表就会是失败:

⚫ 源表和目标表都受同一安全策略的保护;

⚫ 两个表都具有相同的保护粒度(是行级别或列级别或都具有行级别和列级别);

⚫ 在两个表中,受保护的列的相同设置是由相同的安全标签所保护。如果有多余的受保护 列,每个表就会有多于一个安全标签,但是该相同的标签必须保护两个表中的相同的列。

如果由于不符合以上任一条件而使 ATTACH 操作失败的话,您可以使用 ALTER TABLE 语句让 两个表的模式相同, 然后对其重复 ALTER FRAGMENT ATTACH 语句。

只有持有 DBSECADM 角色的用户才能引用 ALTER FRAGMENT 语句中受保护的表。 

使用 BEFORE 、AFTER 和 REMAINDER 选项

BEFORE 和 AFTER 选项允许您在现有分片之前或之后放入新的分片。当分布方案为循环或区间 间隔时,您不能使用 BEFORE 和 AFTER 选项。

当您连接新的列表或表达式的分片而没有显式地使用 BEFORE 或 AFTER 关键字选项时,数据库 服务器会将所添加的分片置于分片存储列表的末尾,除非存在一个余项分片。如果存在一个余项分 片,则新分片会刚好置于该余项分片前。您不能在余项分片之后连接一个新分片。

当分布方案是循环或区间间隔时,您无法定义余项分片。

如果您省略了 AS PARTITION 分片规范,该分片的名称就是存储它的 dbspace 的名称。如果同一 表的另一个分片已经具有其 dbspace 的名称,那么数据库服务器会声明异常,并且 ALTER FRAGMENT ATTACH 操作失败。

将多个未分片表合并以创建一个分片表

当您具有相同表结构的表转换为单独一个表中的分片时,您是允许数据库服务器管理分片存储,而 不是允许应用程序管理分片存储。分布方案可以是循环的或急于表达式的。

要从两个或两个以上相同结构的未分片表创建单独一个分片表,ATTACH 子句必须包含连接列表

中的活表。连接列表是 ATTACH 子句中表的列表。

要在新创建的单独一个分片表中包含 rowid ,请首先连接所有表,然后使用 ALTER TABLE 语句 添加 rowid。

将一个表连接到一个分片表

要将一个未分片表连接到一个已分片的表,必须已在独立的 dbspace 中创建该未分片表,并且必 须具有与该分片表相同的表结构。在以下示例中,循环分布方案将表 cur_acct 分片,而且表

old_acct 是驻留在独立 dbspace 中的未分片表。以下示例说明了如何将 old_acct (作为 consumed table )连接到 cur_acct (作为 surviving table):

ALTER FRAGMENT ON TABLE cur_acct ATTACH old_acct;

当您将一个或多个连接到一个分片表时,consumed_table 必须是未分片的。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论