云数据库 GAUSSDB-HTAP系统函数
HTAP系统函数
- gs_htap_tmu_data(rel_oid oid, rowgroup_id integer)
描述:查看实时事务单元TMU中的活跃事务数据。当rowgroup_id为0时,返回表中所有活跃事务数据;当rowgroup_id非0时,返回表中指定行组中的活跃事务数据。
返回值类型:record
备注:必须是系统管理员或运维管理员才能执行此函数。
本函数对OLTP业务有一定影响,仅作为运维接口使用,且不建议频繁执行。
表1 gs_htap_tmu_data参数说明 参数类型
参数名
类型
描述
输入参数
rel_oid
oid
行存表oid信息。
输入参数
rowgroup_id
integer unsigned
行组唯一标识。
输出参数
rel_oid
oid
行存表oid信息。
输出参数
rowgroup_id
integer unsigned
行组唯一标识。
输出参数
xid
xid
操作该数据的事务id。
输出参数
ctid
cstring
该数据在页面上的位置。
输出参数
flag
smallint unsigned
二进制标记位,每一数位表示TMU记录的不同操作属性。其中:
- 第4位为1时,表示该记录是一条更新操作。
- 第3位为1时,表示该记录是一条删除操作。
- 第2位为1时,表示该记录是一条插入操作。
示例:
- 当enable_htap=off时:
gaussdb=# select * from gs_htap_tmu_data(16796,0); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 当enable_htap=on时:
gaussdb=# select * from gs_htap_tmu_data(16796,0); rel_oid | rowgroup_id | xid | ctid | flag ---------+-------------+-------+-------+------- 16796 | 1 | 78437 | (0,1) | 16385 16796 | 1 | 78437 | (0,2) | 16385 16796 | 1 | 78439 | (0,1) | 4097 16796 | 1 | 78439 | (0,2) | 4097 (4 rows)
- gs_htap_tmu_chunk_meta(rel_oid oid, rowgroup_id integer)
描述:查看实时事务单元TMU元数据信息。当rowgroup_id为0时,返回所有行组中的实时事务单元TMU数据信息;当rowgroup_id非0时,返回表中指定行组中的实时事务单元TMU数据信息。
返回值类型:record
备注:必须是系统管理员或运维管理员才能执行此函数。
表2 gs_htap_tmu_chunk_meta参数说明 参数类型
参数名
类型
描述
输入参数
rel_oid
oid
行存表oid信息。
输入参数
rowgroup_id
integer unsigned
行组唯一标识。
输出参数
rel_oid
oid
行存表oid信息。
输出参数
rowgroup_id
integer unsigned
行组唯一标识。
输出参数
status
smallint unsigned
表示TMU的状态。
- 1表示TMU没有被清理过。
- 2表示TMU被清理过。
输出参数
row_count
integer unsigned
数据行数。
输出参数
buffer_count
integer unsigned
包含的buffer个数。
输出参数
mem_usage
bigint
申请内存大小。
输出参数
inprogress
cstring
表示插入TMU数据的事务处于活跃状态的占比。
输出参数
completed
cstring
表示插入TMU数据的事务处于提交或回滚状态的占比。
示例:
- 当enable_htap=off时:
gaussdb=# select * from gs_htap_tmu_chunk_meta(16796,0); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 当enable_htap=on时:
gaussdb=# select * from gs_htap_tmu_chunk_meta(16796,0); rel_oid | rowgroup_id | status | row_count | buffer_count | mem_usage | inprogress | completed ---------+-------------+--------+-----------+--------------+-----------+------------+----------- 16796 | 1 | 1 | 4 | 1 | 65536 | 0.00% | 100.00% (1 row)
- gs_imcv_bgworker_status()
返回值类型:record
备注:必须是系统管理员或运维管理员才能执行此函数。
表3 gs_imcv_bgworker_status参数说明 参数类型
参数名
类型
描述
输出参数
worker_pid
bigint
线程号。
输出参数
relation_id
oid
正在处理的IMCV表的oid。
输出参数
worker_status
cstring
表示idle(准备)、running(进行中)、finished(完成)三种线程工作状态。
输出参数
start_time
timestamp with time zone
重建开始的时间戳。
示例:
- 当enable_htap=off时:
gaussdb=# select * from gs_imcv_bgworker_status(); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 当enable_htap=on时:
gaussdb=# select * from gs_imcv_bgworker_status(); worker_pid | relation_id | worker_status | start_time ------------+-------------+---------------+------------ 0 | 0 | finished | 0 | 0 | idle | 0 | 0 | idle | (3 rows)
- 当enable_htap=off时:
- gs_imcv_flush(reloid oid)
描述:对数据库中指定的IMCV表立即进行一次重建,并显示重建的结果。重建过程将刷新IMCV表,移除旧数据并同步当前表的非活跃数据。
返回值类型:text
备注:必须是系统管理员或运维管理员才能执行此函数。
当IMCV表内的数据足够新鲜时,可能会跳过重建。本函数对OLTP业务有一定影响,仅作为运维接口使用,且不建议频繁执行。
表4 gs_imcv_flush参数说明 参数类型
参数名
类型
描述
输入参数
reloid
oid
行存表oid。
输出参数
output
text
返回本次重建的结果。显示行组重建成功的数量以及跳过重建的数量。
示例:
- 当enable_htap=off时:
gaussdb=# select * from gs_imcv_flush(16796); ERROR: Manual row group rebuilding failed due to ENABLE_HTAP is not enabled.
- 当enable_htap=on时:
gaussdb=# select * from gs_imcv_flush(16796); gs_imcv_flush ------------------------------------------------ 2 row groups rebuilt successfully, 1 skipped. (1 row)
- 当enable_htap=off时:
- gs_imcv_taskbuffer_view()
描述:gs_imcv_taskbuffer_view显示HTAP业务中重建任务队列使用情况,入参为空。
返回值类型:record
备注:必须是系统管理员或运维管理员才能执行此函数。
表5 gs_imcv_taskbuffer_view参数说明 参数类型
参数名
类型
描述
输出参数
buffer_is_empty
boolean
任务队列是否为空。默认值为t。
输出参数
buffer_is_full
boolean
任务队列是否存满。默认值为f。
输出参数
buffer_used_space
integer
任务已使用空间。默认值为0。
输出参数
buffer_free_space
integer
任务剩余空间。默认值为999。
示例:
- 当enable_htap=off时:
gaussdb=# select * from gs_imcv_taskbuffer_view(); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 当enable_htap=on时:
gaussdb=# select * from gs_imcv_taskbuffer_view(); buffer_is_empty | buffer_is_full | buffer_used_space | buffer_free_space -----------------+----------------+-------------------+------------------- t | f | 0 | 999 (1 row)
- 当enable_htap=off时:
- gs_imcu_meta(rel_name)
描述:gs_imcu_meta用于显示指定rel_name的IMCV表下的IMCU元信息。
返回值类型:record
表6 gs_imcu_meta参数列表 参数类型
参数
类型
描述
输入参数
relname
text
IMCV表名。
输出参数
reloid
oid
表id。
输出参数
relname
text
表名。
输出参数
imcu_xmin
xid
预留,暂不使用。
输出参数
imcu_id
integer
IMCU id。
输出参数
row_count
integer
IMCU行数。
输出参数
imcu_size
integer
IMCU大小,单位字节。
输出参数
imcu_mode
integer
IMCU加载列数据特征:
- 普通。
- 全部为空。
- 相同值。
- 无最大最小值。
- 有空行。
输出参数
imcu_pointer
bigint
预留,暂不使用。
输出参数
magic
integer
IMCU校验magic。
输出参数
attnum
smallint
IMCU加载列对应的attnum。
示例:
gaussdb=# SELECT * FROM gs_imcu_meta('test2'); I reloid | relname | imcu_xmin | imcu_id | row_count | imcu_size | imcu_mode | imcu_pointer | magic | attnum --------+---------+-----------+---------+-----------+-----------+-----------+--------------+-------+-------- 115114 | test2 | 0 | 1 | 9 | 8192 | 1 | 0 | 74802 | 0 115114 | test2 | 0 | 1 | 9 | 8192 | 1 | 0 | 74802 | 1 115114 | test2 | 0 | 1 | 9 | 8192 | 1 | 0 | 74802 | 2 115114 | test2 | 0 | 1 | 9 | 8192 | 1 | 0 | 74802 | 3 115114 | test2 | 0 | 1 | 9 | 8192 | 0 | 0 | 74802 | 4 115114 | test2 | 0 | 1 | 9 | 8192 | 0 | 0 | 74802 | 5 (6 rows)
备注:该示例表示共有1个行组(imcu_id为1),每一行代表一个cu(其中attnum为0的列为ctid列),每个cu行数为9行。
- gs_imcv_status()
描述:gs_imcv_status函数用于显示当前所有IMCV表的状态信息。
返回值类型:record
表7 gs_imcv_status参数列表 参数
参数
类型
描述
输出参数
reloid
oid
表id。
输出参数
relname
name
表名。
输出参数
dbname
name
数据库名。
输出参数
username
name
用户名。
输出参数
parentoid
oid
父表id。
输出参数
imcvstatus
char
IMCV表状态:
- 'I': POPULATE_STAT_INIT初始化。
- 'L': POPULATE_STAT_LOAD_START开始加载。
- 'M': POPULATE_STAT_LOAD_META_DONE加载元数据。
- 'F': POPULATE_STAT_LOAD_FINISH加载完成。
- 'D': POPULATE_STAT_DROP已删除。
- 'E': POPULATE_STAT_ERROR异常。
输出参数
imcvnattr
smallint
加载列数量。
输出参数
imcvkey
int2vector
加载的列数组。
输出参数
priority
smallint
加载优先级。
输出参数
rowgroup_num
integer
行组数。
输出参数
cu_num_in_mem
integer
内存中的IMCU数量。
输出参数
cu_mem_size
bigint
IMCU占用的内存大小,单位字节。
输出参数
cu_num_in_disk
integer
暂不支持,值为0。
输出参数
cu_disk_size
bigint
暂不支持,值为0。
示例:
gaussdb=# SELECT * FROM gs_imcv_status(); reloid | relname | dbname | username | parentoid | imcvstatus | imcvnattr | imcvkey | priority | rowgroup_num | cu_num_in_mem | cu_mem_size | cu_num_in_disk | cu_disk_size --------+---------+----------+----------+-----------+------------+-----------+-----------+----------+--------------+---------------+-------------+----------------+-------------- 115114 | test2 | postgres | lqy | 0 | F | 5 | 1 2 3 4 5 | 1 | 1 | 6 | 49152 | 0 | 0 (1 row)
- gs_imcu_slot_status()
描述:gs_imcu_slot_status记录了IMCV表下的IMCU对应的缓存slot信息。
返回值类型:record
表8 gs_imcu_slot_status参数列表 参数类型
参数
类型
描述
输出参数
reloid
oid
表id。
输出参数
cu_id
integer
IMCU id。
输出参数
col_id
integer
IMCU 所属列id。
输出参数
slot_id
integer
缓存区slot id。
输出参数
block_size
integer
IMCU内存大小,单位字节。
输出参数
flag
char
缓存块标志位。
示例(flag为\x01表示缓存slot包含有效数据):
gaussdb=# SELECT * FROM gs_imcu_slot_status(); reloid | cu_id | col_id | slot_id | block_size | flag --------+-------+--------+---------+------------+------ 115114 | 1 | 1 | 0 | 8192 | \x01 115114 | 1 | 2 | 1 | 8192 | \x01 115114 | 1 | 3 | 2 | 8192 | \x01 115114 | 1 | 4 | 3 | 8192 | \x01 115114 | 1 | 5 | 4 | 8192 | \x01 115114 | 1 | 0 | 5 | 8192 | \x01 (6 rows)
- 云数据库 GeminiDB系统架构_免费试用云数据库
- GaussDB函数_GaussDB数据库函数_高斯数据库函数_华为云
- GaussDB支持的函数_GaussDB函数类型解析_高斯数据库支持的函数-华为云
- 调用函数_函数调用方式_函数工作流 FunctionGraph-华为云
- GaussDB数据库函数_GaussDB函数和操作符_高斯数据库函数-华为云
- GaussDB数据库函数_GaussDB介绍_高斯数据库函数
- 什么是函数工作流_函数托管计算服务_函数工作流 FunctionGraph-华为云
- 使用容器镜像部署函数_函数部署_函数工作流 FunctionGraph-华为云
- 如何使用模板创建函数_模板创建函数_函数工作流 FunctionGraph-华为云
- 使用SpringBoot构建HTTP函数_functiongraph_函数工作流