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

GBase 8s使用 BEFORE 、AFTER 和 REMAINDER 选项

三金先生 2023-08-08
241

使用 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论