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业务有一定影响,仅作为运维接口使用,且不建议频繁执行。
参数类型 | 参数名 | 类型 | 描述 |
|---|---|---|---|
输入参数 | 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记录的不同操作属性。其中:
|
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
备注:仅系统管理员或运维管理员才能执行此函数。
参数类型 | 参数名 | 类型 | 描述 |
|---|---|---|---|
输入参数 | rel_oid | oid | 行存表oid信息。 |
输入参数 | rowgroup_id | integer unsigned | 行组唯一标识。 |
输出参数 | rel_oid | oid | 行存表oid信息。 |
输出参数 | rowgroup_id | integer unsigned | 行组唯一标识。 |
输出参数 | status | smallint unsigned | 表示TMU的状态。
|
输出参数 | row_count | integer unsigned | 数据行数。 |
输出参数 | buffer_count | integer unsigned | 包含的buffer个数。 |
输出参数 | mem_usage | bigint | 申请内存大小。 |
输出参数 | inprogress | cstring | 表示插入TMU数据的事务处于活跃状态的占比。 |
输出参数 | completed | cstring | 表示插入TMU数据的事务处于提交或回滚状态的占比。 |
gaussdb=# SELECT * FROM gs_htap_tmu_chunk_meta(16796,0);
ERROR: Query failed due to ENABLE_HTAP is not enabled. gs_imcv_bgworker_status()
描述:显示执行IMCV表重建的bgworker的状态信息。
返回值类型:record
备注:仅系统管理员或运维管理员才能执行此函数。
参数类型 | 参数名 | 类型 | 描述 |
|---|---|---|---|
输出参数 | worker_pid | bigint | 线程号。 |
输出参数 | relation_id | oid | 正在处理的IMCV表的oid。 |
输出参数 | worker_status | cstring | 表示idle(准备)、running(进行中)、finished(完成)三种线程工作状态。 |
输出参数 | start_time | timestamp with time zone | 重建开始的时间戳。 |
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业务有一定影响,仅作为运维接口使用,且不建议频繁执行。
参数类型 | 参数名 | 类型 | 描述 |
|---|---|---|---|
输入参数 | reloid | oid | 行存表oid。 |
输出参数 | output | text | 返回本次重建的结果。显示行组重建成功的数量以及跳过重建的数量。 |
gaussdb=# SELECT * FROM gs_imcv_flush(16796);
ERROR: Manual row group rebuilding failed due to ENABLE_HTAP is not enabled. gs_imcv_taskbuffer_view()
描述:显示HTAP业务中重建任务队列使用情况,入参为空。
返回值类型:record
备注:仅系统管理员或运维管理员才能执行此函数。
参数类型 | 参数名 | 类型 | 描述 |
|---|---|---|---|
输出参数 | buffer_is_empty | boolean | 任务队列是否为空。默认值为t。 |
输出参数 | buffer_is_full | boolean | 任务队列是否存满。默认值为f。 |
输出参数 | buffer_used_space | integer | 任务已使用空间。默认值为0。 |
输出参数 | buffer_free_space | integer | 任务剩余空间。默认值为999。 |
gaussdb=# SELECT * FROM gs_imcv_taskbuffer_view();
ERROR: Query failed due to ENABLE_HTAP is not enabled. gs_imcu_meta(rel_name)
描述:用于显示指定rel_name的IMCV表下的IMCU元信息。
返回值类型:record
参数类型 | 参数 | 类型 | 描述 |
|---|---|---|---|
输入参数 | 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()
描述:用于显示当前所有IMCV表的状态信息。
返回值类型:record
参数 | 参数 | 类型 | 描述 |
|---|---|---|---|
输出参数 | reloid | oid | 表id。 |
输出参数 | relname | name | 表名。 |
输出参数 | dbname | name | 数据库名。 |
输出参数 | username | name | 用户名。 |
输出参数 | parentoid | oid | 父表id。 |
输出参数 | imcvstatus | char | IMCV表状态:
|
输出参数 | 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()
描述:记录了IMCV表下的IMCU对应的缓存slot信息。
返回值类型:record
参数类型 | 参数 | 类型 | 描述 |
|---|---|---|---|
输出参数 | 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) 
