返回首页

gbase数据、南大通用产品文档:GBase8sdefragment 参数:

更新日期:2024年09月11日

动态地对分区 extent 取消
分片(SQL 管理 API)
随同 admin() 或 task() 函数,
使用 defragment 参数来对表或索引取消分片以合并不相
邻的 extent。
对表取消分片使得数据行离得更近,以避免分区标题页移除问题,并可提高性能。
在对分区取消分片之前,您应回顾对分区取消分段。
语法
使用下列语法,您或可指定 defragment 参数,或可指定 defragment partnum 参数:



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

元素
描述
关键考虑
database
包括您想要取消分片的表或索
引的数据库名。

owner
表所有者的用户 ID。

table
要取消分片的表名。

partition_number
要取消分片的一个或多个分区
号。
要指定多于一个分区,请使用逗号分
隔的分区号列表。

用法
使用 defragment 参数来对特定的表取消分片。使用 defragment partnum 参数来对一个
或多个磁盘分区取消分片。
关于取消分片的信息存储在共享内存中。使用 oncheck -pt 和 -pT:显示表或分片的
tblspaces 命令来显示关于特定的表或分片的 extent 数目信息。使用 onstat -g
defragment 命令:打印磁盘碎片整理的分区 extent 。
如果取消分片需要减少 extent 的数目,减少最少 1
extent,则需要返回 0(成功),即
使在分区中有许多 extent。
如果分区有单个 extent,则取消分片需要返回 0 来表明需要成功,即使无 extent 合并。

示例
要对 stores_demo 数据库中的 customer 表取消分片,请使用下列函数之一:
EXECUTE FUNCTION task("defragment","stores_demo:gbasedbt.customer");
EXECUTE FUNCTION admin("defragment","stores_demo:gbasedbt.customer");
要对索引取消分片,您必须指定该索引的分区号,如这两个函数示例所示:
EXECUTE FUNCTION task("defragment partnum","2097154");
EXECUTE FUNCTION admin("defragment partnum","2097154");
要对分区列表取消分片,请使用下列函数之一:
EXECUTE FUNCTION task("defragment partnum", "16777217,28477346");
EXECUTE FUNCTION admin("defragment partnum", "16777217,28477346");

函数原型:
sword
GCIDateTimeGetTime ( void *hndl,
GCIError *err,
GCIDateTime *datetime,
ub1 *hour,
ub1 *min,
ub1 *sec,
ub4 *fsec )
功能描述:

获取GCIDateTime 对象中的时间,包含亚秒。
参数说明:
hndlp(输入)
上下文或者环境句柄

errhp(输入)


错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
datetime(输入)
日期时间
hour(输出)
单位:时
min(输出)
单位:分。



sec(输出)
单位:秒。
fsec(输出)
总共为5 位。
返回值:

如果执行成功,返回GCI_SUCCESS,否则返回GCI_ERROR

函数原型:
Sword GCIIntervalGetYearMonth ( void *hndl,
GCIError *err,
sb4 *yr,
sb4 *mnth,
const GCIInterval *interval )
功能描述:

从GCIInterval 中获得的年和月的值。
参数说明:
hndlp(输入)
上下文或者环境句柄

errhp(输入)


错误信息句柄,该接口调用失败时,错误信息会存在该句柄上。
yr(输出)



单位:年
mnth(输出)
单位:月
interval(输入)
输入的GCIInterval 对象数据
返回值:

如果执行成功,返回GCI_SUCCESS,否则返回GCI_ERROR
注:
请参INTERVAL 数据类型阅相关手册