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

使用 ALTER FRAGMENT 语句更改现有表或索引的分布策略或存储位置——GBASE

GBASE数据库 2023-03-15
320

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

语法 


用法

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 环境选项 。)

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

评论