返回首页

gbase数据、南大通用产品文档:GBase8sdrop chunk 参数:删除 chunk(SQL 管理

更新日期:2024年09月11日

API)
随同 admin() 或 task() 函数,使用 drop chunk 参数来从 dbspace、blobspace 或
sbspace 删除指定的 chunk。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 726 -

语法

元素
描述
关键考虑
offset
磁盘分区内或无缓冲的设备
内,达到您正在删除的
dbspace、blobspace 或
sbspace 的初始 chunk 的偏
移量,以 KB 为单位。
无符号整数的初始偏移量必须等于或大于
0。起始偏移量加上 chunk 大小不可超过最
大的 chunk 大小。最大的偏移量为 4 TB。
还请参阅 admin() 和 task() 参数大小规范。

path_name 您正在删除的 dbspace、
blobspace 或 sbspace 的初
始 chunk 的磁盘分区或无缓
冲的设备。
该 chunk 必须是现有的无缓冲的设备或缓
冲的文件。当您指定路径名时,你可使用完
全路径名或相对路径名。然而,如果您使用
相对路径名,则其必须为相对于当您初始化
数据库服务器时的当前目录。
space_name
要从中删除 chunk 的
dbspace、sbspace 或
blobspace 名。
当数据库服务器为 online 或 quiescent
时,您可从 dbspace、临时 dbspace 或
sbspace 删除 chunk。
仅当数据库服务器处于 quiescent 模式中
时,您可从 blobspace 删除 chunk。

用法
这个函数等同于 onspaces -d 命令。
示例
下列示例从名为 dbspc3 的 dbspace 在偏移量 5200 KB 处删除 chunk:
EXECUTE FUNCTION task("drop chunk", "dbspc3","\\.\e:","5200");

使用 SET COLLATION 语句来指定该会话的新的对照顺序,取代通过
DB_LOCALE 环境变量设置暗示的对照。SET NO COLLATION 恢复缺省的对
照。
语法

元素
描述
限制
语法
locale 要在此会话中使用其对
照顺序的语言环境的名

必须为数据库服务器可访问的
语言环境的名称
引用字符

用法
SET COLLATION 语句是对 SQL 的 ANSI/ISO 标准的扩展。您可随同 GBase 8s
ESQL/C 使用此语句。
如同 GBase 8s GLS 用户指南 所解释的那样,数据库服务器使用语言环境文件来
指定字符集、对照顺序和显示与操作字符串级其他数据值的一些自然语言的其他
约定。数据库语言环境的对照顺序是数据库服务器据其对字符串排序的次序顺
序。
如果您未设定 DB_LOCALE 的值,则基于 United States English,对于 UNIX™
的缺省的语言环境为 en_us.8859-1 ,对于 Windows™ 系统的语言环境为 Code

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 961
Page 1252 。否则,数据库服务器使用 DB_LOCALE 设置作为它的语言环境。在
运行时,对于在同一会话中先前访问的所有数据库服务器,SET COLLATION 语
句覆盖 DB_LOCALE 的对照顺序。
对于余下的会话,该新对照顺序保持有效,或直到您发出另一 SET COLLATION
语句为止。不影响其他的会话,但您以非缺省的对照创建的数据库对象使用在他
们创建时有效的任何对照顺序。
在缺省情况下,对照顺序是代码集顺序,但有些语言环境还支持特定的语言环境
顺序。在大多数上下文中,仅 NCHAR 和 NVARCHAR 数据值可根据特定于语
言环境的对照顺序存储。
以 SET COLLATION 指定对照顺序
对当前会话中先前访问的所有数据库服务器,SET COLLATION 以 locale 指定
的对照顺序替代当前的对照顺序。 例如,此示例指定中文的对照顺序:
EXEC SQL set collation "zh_cn.gb18030-2000";
如果在此会话中的下一数据库服务器的活动是对 NCHAR 或 NVARCHAR 值排
序,则遵循中文的对照顺序。
在同一会话中,假设下列 SET NO COLLATION 语句恢复对对照顺序的
DB_LOCALE 设置:
EXEC SQL set no collation;
在 SET NO COLLATION 执行之后,在同一会话中的后续的对照基于该
DB_LOCALE 设置。然而,您使用中文对照顺序创建的任何数据库对象,诸如检
查约束、索引、准备好的对象、触发器或 UDR,会继续将中文对照应用于
NCHAR 和 NVARCHAR 数据类型。
在 NLSCASE INSENSITIVE 数据库中的对照
在 NLSCASE INSENSITIVE 数据库中,在 NCHAR 和 NVARCHAR 数据上的
对照操作不区分字母大小写,以便于数据库服务器将有相同序列的字母组成的字
符串中的大小写变量按重复的字符串处理。对照的列表按照其检索的顺序来对这
些区分大小写的重复的内容排列,因此,带有字符串 alpha 的大小写变量的对照
的列表可能以任何顺序出现,比如下列顺序,不管变量的大小写:
alpha
Alpha

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 962
alpha
ALPHA
Alpha
要获取更多信息,请参阅 在 NLSCASE INSENSITIVE 数据库中重复的行 和 在
区分大小写的数据库中的 NCHAR 和 NVARCHAR 表达式。
对 SET COLLATION 的限制
虽然 SET COLLATION 使得您能在会话内动态地更改数据库服务器的对照顺序,
但您应了解对 SET COLLATION 语句可发挥作用的范围的几个限制。

仅数据库服务器执行的对照受影响。对数据排序的客户端进程不受 SET
COLLATION 影响。

仅当前会话受影响。其他会话不受您的 SET COLLATION 语句的直接影
响,但数据库服务器会使用它们的创建时对照顺序来设置任何数据库对
象,这些数据库对象是您在已成功地运行了 SET COLLATION 之后创建
的那些。

对对照顺序的更改不更改代码集。数据库服务器通常使用由
DB_LOCALE 指定的代码集。

仅按照特定于语言环境的顺序对 NCHAR 和 NVARCHAR 值进行排
序。
处理来自不同的代码集的字符
由于 SET COLLATION 仅更改对照顺序,而不是当前的语言环境或代码集,因此您
通常不可使用此语句来将来自不同的语言环境的字符数据插入到同一数据库之
内。如果数据库需要存储来自两种或多种语言的字符,这些语言内在地需要不同
的代码集或代码页,则您必须改为使用支持 Unicode 的语言环境。对于 GBase
8s ESQL/C 应用,以及对于使用 GBase 8s GLS 库的其他客户端应用,其语言环
境支持 UTF-8 字符编码的数据库可存储相应于来自多种自然语言的不同的字符集
的代码点的字符,但仅当下列条件全都满足时:

当数据库服务器实例启动时,设置 GL_USEGLU 环境变量为 1。

当创建数据库时,设置 DB_LOCALE 环境变量为有效的 Unicode 语言
环境。

设置 CLIENT_LOCALE 环境变量为数据库服务器的 DB_LOCALE 设置
支持的有效的 Unicode 语言环境。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 963
对于 GBase 8s 要使用“Unicode 的国际组件”(ICU)4.8.1 库来支持最高达 6.0
的 Unicode 的版本,在启动服务器之前,在服务器环境中必须将 GL_USEGLU
环境变量设置为值 1(一)。在使用 UTF-8 字符编码的数据库中,此设置初始
化启用 Unicode 对照和 SQL 操作的那些转换规则,包括 Chinese GB18030-2000
代码集。此转换仅适用于以已设置的 GL_USEGLU=1 创建了的数据库。
注意: 然而,GL_USEGLU 环境变量对 JDBC 客户端应用不起作用 ,包括 GBase
8s JSON 兼容性线协议 listener 的那些应用。要在 Unicode 语言环境中正确地
支持 JDBC 应用,没有在客户端或在服务器环境中将 GL_USEGLU 设置为 1 的要
求。
由数据库对象执行的对照
虽然在会话结束之后(或您执行 SET NO COLLATION 之后)数据库服务器恢复
到 DB_LOCALE 对照顺序,但您使用非缺省的对照创建的对象仍留在数据库
中。例如,您可在相同的列的集合上,使用 SET COLLATION 指定的不同的对照
顺序来创建多索引,称为多语言索引。
然而,在给定的列的集合上,仅可存在一个集群的索引。
在给定的列的集合上,仅可存在一个唯一的约束或主键,但您可在同样的列的集
合上创建多个唯一的索引,如果每一索引有不同的对照顺序的话。
当计算查询的成本时,对于那些将任何非当前会话对照的任何对照应用于
NCHAR 或 NVARCHAR 列,查询优化器不顾及这些索引。
附加的索引的对照顺序必须与它的表的相同,且此必须为由 DB_LOCALE 指定
的缺省的对照顺序。
ALTER INDEX 语句不可更改索引的对照。当 ALTER INDEX 执行时,不管任何
先前的 SET COLLATION 语句。
当您将来自 CHAR 列的值与 NCHAR 列比较时, GBase 8s 强制将 CHAR 值
转型为 NCHAR,然后再应用当前的对照。类似地,在比较 VARCHAR 与
NVARCHAR 值之前, GBase 8s 首先将 VARCHAR 值强制转型为
NVARCHAR。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 964
当为远程表或视图创建同义词时,参与的数据库必须有相同的对照顺序。然而,
现有的同义词可用在支持 SET COLLATION 的其他数据库中,且该同义词的对照
顺序不顾及 DB_LOCALE 的设置。
对 NCHAR 或 NVARCHAR 值排序的检查约束、游标、准备好的对象、触发器
和 SPL 例程使用在它们创建时刻生效的对照,如果这与 DB_LOCALE 设置不
同的话。
当创建按本地化的顺序排序的数据库对象时,有多少不同的对照会对性能有灵敏
的影响。

sysindices 系统目录表描述数据库中的索引。它存储所有索引的 LOW 方式统计信息,
且对在数据库中定义的每个索引包含一行。
表 19. sysindices 系统目录表列

类型
解释
idxname
VARCHAR(128)
索引的名称
owner
VARCHAR(32)
索引所有者的名称(系统目录
表的用户 gbasedbt 和数据库
表的 username)
tabid
INTEGER
表的唯一标识代码
idxtype
CHAR(1)
唯一性状态U
= 需要唯一值D
=
允许重复
集群
CHAR(1)
集群或非集群状态(C = 集群)

levels
SMALLINT
树的层数
leaves
FLOAT
叶的数目
nunique
FLOAT
第一列中唯一键的数目
clust
FLOAT
集群的程度;较小的数字对应
较大的集群。最大值是表中的
行数,最小值是表中的数据页
数。对表运行 UPDATE
STATISTICS 之前,此列是空白
的。
nrows
FLOAT
表中的估计行数(在对表运行
UPDATE STATISTICS 之前为零)


GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 47 -


类型
解释
indexkeys
INDEXKEYARRAY
索引键的内部表示法。列最多
可有三个字段,格式为:
procid, (col1,col2, . . . ,
coln),opclassid,其中 1 < n
< 341
amid
INTEGER
实现此索引的访问方法的唯一
标识代码。(对于 sysams 表
中的访问方法,值 = am_id。)

amparam
LIST(VARCHAR(255))
用于定制 amid 访问方法行为
的参数列表
collation
CHAR(32)
创建索引时使用其整理顺序的
数据库语言环境
pagesize
INTEGER
存储此索引的页面的大小(以
字节计)
nhashcols
SMALLINT
FOT 索引中散列的列数
nbuckets
SMALLINT
森林树 (FOT) 索引中子树(存
储区)数
ustlowts
DATETIME YEAR TO FRACTION
上次记录的索引统计信息的日
期和时间
ustbuildduration
INTERVAL HOUR TO
FRACTION(5)
计算索引统计信息所需的时间
nupdates
FLOAT
表的更新数
ndeletes
FLOAT
表的删除数
ninserts
FLOAT
表的插入数
fextsize
INT
索引的第一个扩展数据块的
大小 (KB)
nextsize
INT
索引的下一个扩展数据块的大
小 (KB)

只有在运行了 UPDATE
STATISTICS 语句后,影响现有索引的更改才会在此系统目录表
中反映出来。
indexkeys 列中的字段具有以下有效值:
procid(在 sysprocedures 中)仅为对表列定义的函数的返回值的函数索引存在。
第二个字段中列 (col1, col2, ... , coln) 的列表标识被定义索引的列。
最大值与语言相关:
对于 SPL 或 Java
(TM)
UDR,
最大为 341;
对于 C
UDR,
最大为 102。
opclassid 标识数据库服务器用于构建和搜索索引的辅助访问方法。这与访问方法的
sysopclasses.opclassid 值相同。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 48 -

对索引的分发统计信息最近一次重新计算以来,
有关该索引的 sysindices 制表 DML 操
作中 nupdates、ndeletes 和 ninserts 列的信息,请参阅在 SYSDISTRIB系统目录表中具有
相同名称的三个列的描述。
fextsize 列显示可选 EXTENT
SIZE 子句在定义索引的 CREATE
INDEX 语句中所指定的、
用户定义的第一个扩展数据块大小(以千字节计)。同样,nextsize 列显示可选 NEXT
SIZE
子句在 CREATE
INDEX 语句中所指定的、
用户定义的下一个扩展数据块大小
(以千字节计)

如果创建索引时省略了对应的 EXTENT SIZE 或 NEXT SIZE 子句,那么上述每个列会显示
值零 (0)。
如果定义新索引的 CREATE INDEX 语句不包括任何显式扩展数据块大小规范,那么数
据库服务器会自动计算第一个和下一个扩展数据块大小,
但 fextsize 和 nextsize 列值会设
置为 0。
建立了 tabid 列的索引并且此索引允许重复值。idxname、owner 和 tabid 列只允许
唯一值。