HTAP系统函数
由于HTAP特性不支持分布式,enable_htap在分布式中不可以设置为on,所以查以下系统函数时会显示为空或者报错:enable_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时,表示该记录是一条插入操作。
示例:查询gs_htap_tmu_data系统函数。gaussdb=# select * from gs_htap_tmu_data(16796,0); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 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数据的事务处于提交或回滚状态的占比。
示例:查询gs_htap_tmu_chunk_meta系统函数。gaussdb=# select * from gs_htap_tmu_chunk_meta(16796,0); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 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
重建开始的时间戳。
示例:查询gs_imcv_bgworker_status系统函数。gaussdb=# select * from gs_imcv_bgworker_status(); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- gs_imcv_flush(reloid oid)
描述:对数据库中指定的IMCV表立即进行一次重建,并显示重建的结果。重建过程将刷新IMCV表,移除旧数据并同步当前表的非活跃数据。
返回值类型:text
备注:必须是系统管理员或运维管理员才能执行此函数。
当IMCV表内的数据足够新鲜时,可能会跳过重建。本函数对OLTP业务有一定影响,仅作为运维接口使用,且不建议频繁执行。
表4 gs_imcv_flush参数说明 参数类型
参数名
类型
描述
输入参数
reloid
oid
行存表oid。
输出参数
output
text
返回本次重建的结果。显示行组重建成功的数量以及跳过重建的数量。
示例:查询gs_imcv_flush系统函数。gaussdb=# select * from gs_imcv_flush(16796); ERROR: Manual row group rebuilding failed due to ENABLE_HTAP is not enabled.
- 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。
示例:查询gs_imcv_taskbuffer_view系统函数。gaussdb=# select * from gs_imcv_taskbuffer_view(); ERROR: Query failed due to ENABLE_HTAP is not enabled.
- 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'); reloid | relname | imcu_xmin | imcu_id | row_count | imcu_size | imcu_mode | imcu_pointer | magic | attnum --------+---------+-----------+---------+-----------+-----------+-----------+--------------+-------+-------- (0 rows)
- 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 --------+---------+----------+----------+-----------+------------+-----------+-----------+----------+--------------+---------------+-------------+----------------+-------------- (0 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
缓存块标志位。
示例:
gaussdb=# SELECT * FROM gs_imcu_slot_status(); reloid | cu_id | col_id | slot_id | block_size | flag --------+-------+--------+---------+------------+------ (0 rows)