GBase8s语法 ADD子句

143 篇文章 3 订阅
142 篇文章 0 订阅

ADD 子句
使用 ADD 子句将另一个分片添加到表或索引的现有分片列表中。
ADD 子句
在这里插入图片描述

expression 仅包含当前表中的 column 名称,以及单独一行中的数据值。不允许任何子查询或聚集。此外,在此处,内置的 CURRENT 、DATE 、DBINFO 、SYSDATE 和 TODAY 表达式无效。
向循环分布方案添加新的 Dbspace
您可以向循环分布方案添加更多的 dbspace 。以下示例显示了最初的循环定义:
CREATE TABLE book (col1 INT, col2 INT)
FRAGMENT BY ROUND ROBIN IN dbsp1, dbsp4;
要添加另一个 dbspace ,请如下例使用 ADD 子句:
ALTER FRAGMENT ON TABLE book ADD dbsp3;
向循环分布方案添加新的 Dbspace
您可以向循环分布方案添加更多的 dbspace 。以下示例显示了最初的循环定义:
CREATE TABLE book (col1 INT, col2 INT)
FRAGMENT BY ROUND ROBIN IN dbsp1, dbsp4;
要添加另一个 dbspace ,请如下例使用 ADD 子句:
ALTER FRAGMENT ON TABLE book ADD dbsp3;
向循环分布方案添加新的分片
在 GBase 8s 中,您可以向现有的循环分布方案添加的分片。它的名称必须在同一 dbspace 多个分片的分布中必须是唯一的。以下示例如在前一节中那样指定相同的最初循环分片存储定义:
CREATE TABLE book (col1 INT, col2 INT)
FRAGMENT BY ROUND ROBIN IN dbsp1, dbsp4;
要添加新的已命名的分片,请按以下示例使用 ADD 子句:
ALTER FRAGMENT ON TABLE book
ADD PARTITION chapter3 IN dbsp1;
新的分布使用 dbsp1 、dbsp4 和 chapter3 作为 3 部分循环分片存储方案的存储位置。分片 chapter3 中的记录存储在与第一个分片中的记录相互独立的 dbsp1 dbspace 中。
添加分片表达式
向一个基于表达式的分布方案的分片列表中添加分表达式会将现有分片中的记录重新分配到新的分片中。当您将新的分片添加到分片列表中时,数据库服务器将对位于新分片之后的分片中的所有数值重新求值。(sysfragments 系统目录表中的任一 evalpos 列值标识了此分片在分片列表中的初始位置。)
下一示例显示最初的表达式定义:
FRAGMENT BY EXPRESSION
c1 < 100 IN dbsp1, c1 >= 100 AND c1 < 200 IN dbsp2,
REMAINDER IN dbsp3
要在 dbspace dbsp2 的一个新分片中添加另一个分片以存储 200 到 299 之间的 c1 值的列,请使用以下 ALTER FRAGMENT 语句:
ALTER FRAGMENT ON TABLE news
ADD PARTITION century3 (c1 >= 200 AND c1 < 300) IN dbsp2;
除了满足标准(c1 >= 200 AND c1 < 300)的行之外,所有原来在余项分片中的行都移动到 dbspace dbsp2 中新的 century3 分区中。
如果当启用自动更新分布统计信息方式,ALTER FRAGMENT ADD 操作会重新分布数据行,数据库服务器会删除已受影响分片的分布统计信息,但是不删除该表的统计信息。该表的下一个查询将会导致数据服务器为重新计算同一分片的统计信息。
使用 BEFORE 和 AFTER 选项
BEFORE 和 AFTER 选项可以将新的分片放置于分片列表中现有分片之前或之后。分片的名称是 dbspace 的名称或 PARTITION 子句中声明的名称。如果分布方案是循环或范围区间的,您就不能使用 BEFORE 和 AFTER 选项。
当您连接新的分片而未使用 BEFORE 或 AFTER 选项时,数据库服务器会将所添加的分片置于分片列表的末尾,除非存在一个余项分片。如果存在一个余项分片,则新的分片会刚好置于该余项分片前。您不能在余项分片之后连接一个新分片。
使用 REMAINDER 选项
如果一个余项分片已存在,您就不能添加它。如果您在一个余项分片存在时添加一个新的分片,数据库服务器将检索并重新计算余项分片中的所有记录;一些记录将可能移动到新的分片中。余项分片总是分片列表中的最后一项。
您不能向范围区间分片结构的分片列表中添加一个余项分片。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值