GBase8s数据库ALTER FRAGMENT 语句

可以使用 ALTER FRAGMENT 语句更改现有表或索引的分布策略或存储位置。该语句是 SQL
ANSI/ISO 标准的扩展。
image.png

用法
ALTER FRAGMENT 语句仅适用于位于当前站点的表分片或索引分片。不会存储或更新任何远程
信息。
要更改一个表的分片存储策略,您必须具有 Alter 或 DBA 特权。要更改一个索引的分段存储策
略,您必须具有 Index 或 DBA 特权。
Attention: 此语句可能导致索引被删除或重建。执行更改操作之前,请仔细阅读 GBase 8s 性能
指南 中的相应章节以查看影响和策略。
ALTER FRAGMENT 语句的子句支持以下任务。
子句 作用
ATTACH 将两个或多个具有相同模式的表组合到一个分片表中
DETACH 将一个表分片从分片存储策略中拆离,并将其置于一个新表中
INIT 提供以下选项:
• 定义并初始化一个表上的分片存储策略
• 更改对分片表达式求值的顺序
• 更改表或索引的分片存储策略
• 更改现有表的存储位置
• 将数据从现有的表分片移到另一个新的分片表中
• 更改数据库给表或索引生成的分片存储位置
• 更改表或索引的分片键或分片表达式
ADD 将另一个分片添加到一个现有分片存储列表
DROP 从一个分片存储列表删除一个现有分片
移除一个或多个创建内部分片的 dbspace 列表中的 dbspaces
MODIFY 更改现有区间、列表或基于表达式的分片表达
将现有的分片移动到不同的 dbspace 中去
用新的列表替换创建区间分片的 dbspace 当前列表
启用或禁用自动创建区间分片
使用 CREATE TABLE 语句或 ALTER FRAGMENT 语句的 INIT 子句来创建分片表。
在 onspaces 实用程序成功重命名 dbspace 后,只有新的名称能够引用重命名后的 dbspace。然
而,表或索引的现有分片存储策略是由数据库服务器自动更新的,以使用新的 dbspace 名称替换旧
的名称。您不需要采取任何额外的操作更新使用旧的 dbspace 名称定义的分布策略或存储位置,但
是如果您要在一个 ALTER FRAGMENT 或 ALTER TABLE 语句中引用该 dbspace ,您必须使用
新的名称。
如果您忽略可选 ONLINE 关键字,ALTER FRAGMENT 操作需要在参与该操作的所有表上都放置
独占存取和独占锁。如果您启用 FORCE_DDL_EXEC 会话环境选项,那么您可以强制已打开的参
与 ALTER FRAGMENT ON TABLE 操作的表或任一已放置锁的表的其他事务退出。如果服务器无
法获得该表的独占访问和独占锁,那么服务器将会回滚已打开或表中已有锁的事务,直到满足
FORCE_DDL_EXE 选项指定的值。(有关更多信息,请参阅 FORCE_DDL_EXEC 环境选项 。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值