
# 段页式存储函数
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
在AStore存储引擎下创建段页式表，需要在创建数据表时指定参数segment=on。例如：
```
CREATE TABLE t1(id int) WITH (segment=on, storage_type=astore);
```
- 段页式存储函数相关字段取值说明：
  1. forknum：数据文件分支。 取值范围：【0：mainfork；1：fsmfork； 2：vm fork】。
     
  
  2. file id：数据文件编号。 取值范围: 【1：元数据文件；2 \~ 5：数据文件】。
     
  
  3. blocks：扩展大小。 取值范围：【1：1号文件；8：2号文件；128：3号文件；1024：4号文件；4096：5号文件】。
     
  
  4. file_block_id/head_block_id/block_id：物理页面在数据文件中的偏移页面号，以及其他含义为页面号的字段皆为此意。 取值范围：【0 \~ 4,294,967,294 】。
     
  
  5. page_ type: 页面类型。 取值范围：
     元页面：file head/file_header：文件头；spc head/spc_header：空间头；map head/map_header：映射头；map page/map_pages：映射页面；reverse pointer page/inverse pointer page/ip pages/：反向指针页面；segment head page/segment head：段头页面；level1 page：level1页面；data_pages/data extent：数据页面；fork head：分支头。
     数据页面：heap、uheap、btree、ubtree。
     未知页面：unknown(data extent)：全零段页式页面，无法判断页面类型；unknown(fsm indexurq)：fsm或indexurq 页面。
     
  
  6. contents：数据文件的存储内容。 取值范围：【permanent：永久；unlogged：不记录日志；temporary：全局临时；temporary2：本地临时】。
     
   
#### local_space_shrink(tablespacename TEXT, databasename TEXT)
描述：当前节点上对指定段页式空间做物理空间收缩。目前只支持对当前连接的database做shrink。
返回值：空
#### gs_space_shrink(tablespace int4, database int4, extent_type int4, forknum int4)
描述：效果跟local_space_shrink类似，对指定段页式空间做物理空间收缩，但参数不同，传入的是tablespace和database的oid，extent_type为\[2,5\]的int值。extent_type为 1表示段页式元数据，目前不支持对元数据所在的物理文件做收缩。该函数仅限工具使用，不建议用户直接使用。
返回值：空
#### global_space_shrink(tablespacename TEXT, databasename TEXT)
描述：在cn上执行，对整个集群上所有dn执行段页式存储空间压缩。
注意：global_space_shrink 锁cluster，在此期间不能执行DDL操作。而local_space_shrink不会锁集群。
#### gs_stat_remain_segment_info()
描述：在CN上执行，展示在DN节点上，因为故障等原因，残留的extent。默认只有初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以查看，其余用户需要赋权后才可以使用。只支持在主机上执行。残留extent主要分为两类：分配而未被利用的segment和分配出去而未被利用的extent。两者主要区别在于segment会包含多个extent，回收时，要将segment上的extent一并全部回收。
返回值类型：
| 名称        | 描述                                                          |
|:---|:---|
| node_name | 节点名称。                                                       |
| space_id  | 表空间ID。                                                      |
| db_id     | 数据库ID。                                                      |
| block_id  | Extent的ID。                                                  |
| type      | Extent的类型，当前有三种：ALLOC_SEGMENT\|DROP_SEGMENT\|SHRINK_EXTENT。 |
   
其中type的三种类型分别表示：
- ALLOC_SEGMENT:用户创建一张段页式表，当segment刚被分配，但是建表语句所在事务仍未提交时，节点故障，导致该segment被分配后，没有被使用。
- DROP_SEGMENT:用户删除段页式表，当该事务成功提交，但是此表的segment页面对应的bit位未被重置，就发生掉电等故障，造成该segment未被使用，也未被释放。
- SHRINK_EXTENT:用户对段页式表执行shrink操作，在未对空置出的extent进行释放时，发生掉电等故障，造成该extent残留，无法被重新利用。
 
例如：
```
gaussdb=# SELECT * FROM gs_stat_remain_segment_info();
     node_name     | space_id | db_id | block_id |     type      
-------------------+----------+-------+----------+---------------
 dn_6001_6002_6003 |    16804 | 16803 |     4157 | ALLOC_SEGMENT
(1 row)
```
#### gs_free_remain_segment()
描述：清理通过函数gs_stat_remain_segment_info查询出的当前库的残留。默认只有初始用户、具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行，其余用户需要赋权后才可以使用。只支持在主机上执行。
返回值：Boolean
#### gs_local_stat_remain_segment_info()
描述：在主DN上执行，显示当前节点的段页式残留信息。用户权限、返回值请参考gs_stat_remain_segment_info。
#### gs_local_free_remain_segment()
描述：在主DN上执行，清理通过函数gs_local_stat_remain_segment_info查询出的当前库的残留。用户权限、返回值请参考gs_free_remain_segment。
#### gs_seg_dump_page(tablespace_name name, file_id int4, bucketnode int4, file_block_id bigint, forknum int4 default 0)
描述：解析段页式的指定页面并返回解析内容。只有具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行。该函数为物理页面解析方式，每次返回一个页面的解析结果（返回的结果中不会包含实际的用户数据信息）。本函数不要求用户输入页面类型，在实现时，先尝试确定页面类型；如果不能确定，则输出可能的解析结果。
参数说明：
| 名称               | 类型                | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| table_space_name | NAME              | 段对象所属的表空间。取值范围：合法存在的表空间name。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| file_id          | INTEGER           | 数据文件标识。取值范围：\[1, 5\]的int4值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| bucketnode       | INTEGER           | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| file_block_id    | BIGINT            | 物理页面在数据文件中的偏移页面号。取值范围：【0\~4294967294】。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| forknum          | INTEGER DEFAULT 0 | 数据文件fork号，默认为0。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                                                                                                                                            |
   
返回值类型：
| 名称        | 类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| page_type | TEXT | 页面类型。取值范围： - 业务页面：heap、uheap、btree、ubtree、gsivfflat_index、gsdiskann_index。  - 段页式元页面：bucket main head page、file head、spc head、map head、map page、reverse pointer page、segment head page、level1 page。  - 未知页面： - unknown(data extent)：全零段页式页面，无法判断页面类型。  - unknown(fsm indexurq)：fsm或indexurq页面。     |
| result    | TEXT | 解析结果。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
例如（下列操作需要在创建过段页式普通表后再执行）：
```
gaussdb=# SELECT * FROM gs_seg_dump_page('pg_default', 1, 1024, 4157);
     page_type     |                                   result                                    
-------------------+-----------------------------------------------------------------------------
 segment head page | Page information of block 4157/4157                                        +
                   |         pd_lsn: 0/2C90608 ,len 8 ,offset 0                                 +
                   |                                                                            +
                   |         pd_checksum: 0x8A7F, verify success,len 2, offset 8                +
                   |         pd_flags:                                                          +
                   |         pd_lower: 24, empty, len 2, offset 12                              +
                   |         pd_upper: 8192, old, len 2, offset 14                              +
                   |         pd_special: 8192, size 0, len 2, offset 16                         +
                   |         Page size & version: 8192, 8, len 2, offset 18                     +
                   |         pd_xid_base: 0, len 8, offset 24 pd_multi_base: 0, len 8, offset 32+
                   |         pd_prune_xid: 0, len 4 ,offset 20                                  +
                   |                                                                            +
                   |         Segment head information on this page                              +
                   |                 magic: 44414548544E454D                                    +
                   |                 lsn is: 0/2C90540                                          +
                   |                 nblocks: 0                                                 +
                   |                 total_blocks: 8                                            +
                   |                 reserved: 0                                                +
                   |                 Level 0 slots information on this page                     +
                   |                         The BlockNumber of level0 slots 0 is: 4157         +
                   |                 fork head information on this page                         +
                   |                         4157(valid)                                        +
                   |                         4294967295(invalid)                                +
                   |                         4294967295(invalid)
(1 row)
```
#### gs_seg_dump_page(relid oid, bucketnode int, block_id bigint, partition bool default false, forknum int4 default 0)
描述：在DN上执行，解析段页式的指定页面并返回解析内容。只有具有sysadmin属性的用户以及在运维模式下具有运维管理员属性的用户可以执行。该函数为逻辑页面解析方式，每次返回一个页面的解析结果（返回的结果中不会包含实际的用户数据信息）。本函数不要求用户输入页面类型，在实现时，先尝试确定页面类型；如果不能确定，则输出可能的解析结果。
参数说明：
| 名称         | 类型                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| relid      | OID                   | 段对象标识。取值范围：合法存在的段页式对象oid，否则报错。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| bucketnode | INTEGER               | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| block_id   | BIGINT                | 逻辑页面号。取值范围：【0\~4294967294】。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| partition  | BOOLEAN DEFAULT FALSE | 段对象是否为分区，默认为false。取值范围：bool，代表所传入的oid对应的对象是否为分区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| forknum    | INTEGER DEFAULT 0     | 数据文件fork号，默认为0。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                                                                                                                                            |
   
返回值说明：
| 名称        | 类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| page_type | TEXT | 页面类型。取值范围： - 业务页面：heap、uheap、btree、ubtree、gsivfflat_index、gsdiskann_index。  - 段页式元页面：bucket main head page、file head、spc head、map head、map page、reverse pointer page、segment head page、level1 page。  - 未知页面： - unknown(data extent)：全零段页式页面，无法判断页面类型。  - unknown(fsm indexurq)：fsm或indexurq页面。     |
| result    | TEXT | 解析结果。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
例如（下列操作需要在DN上执行，relid必须为合法的段页式对象在该DN上的oid，且该对象需要存在数据，才能查到页面信息）：
```
gaussdb=# SELECT * FROM gs_seg_dump_page(16788, 1024, 0);
 page_type |                                                         result
-----------+-------------------------------------------------------------------------------------------------------------------------
 heap      | Page information of block 6021/6021                                                                                    +
           |         pd_lsn: 0/4463418 ,len 8 ,offset 0                                                                             +
           |                                                                                                                        +
           |         pd_checksum: 0xD4CD, verify success,len 2, offset 8                                                            +
           |         pd_flags:                                                                                                      +
           |         pd_lower: 44, non-empty, len 2, offset 12                                                                      +
           |         pd_upper: 8160, old, len 2, offset 14                                                                          +
           |         pd_special: 8192, size 0, len 2, offset 16                                                                     +
           |         Page size & version: 8192, 6, len 2, offset 18                                                                 +
           |         pd_xid_base: 17049, len 8, offset 24 pd_multi_base: 0, len 8, offset 32                                        +
           |         pd_prune_xid: 17049, len 4 ,offset 20                                                                          +
           |                                                                                                                        +
           |         Heap tuple information on this page                                                                            +
           |                                                                                                                        +
           |                 Tuple #1 is normal: length 28, offset 8160                                                             +
           |                         (uint64)xmin/xmax/t_cid: 17052/0/0                                                             +
           |                         (uint32)t_xmin/t_xmax: 3/3(check ilm flag to indicate whether t_xmin/t_xmax is xid or ilm time)+
           |                         ctid:(block 0/0, offset 1)                                                                     +
           |                         t_infomask: HEAP_XMAX_INVALID HEAP_HAS_NO_UID                                                  +
           |                         t_infomask2: Attrs Num: 1                                                                      +
           |                         t_hoff: 24                                                                                     +
           |                         t_bits: NNNNNNNN                                                                               +
           |         Summary (1 total):  1 normal, 0 unused, 0 dead                                                                 +
           |                                                                                                                        +
           | Normal Heap Page, special space is 0                                                                                   +
           |                                                                                                                        +
           |
(1 row)
```
#### gs_seg_get_spc_location(tablespace_name NAME, bucketnode INTEGER, head_block_id BIGINT, block_id BIGINT)
描述：给定段和逻辑页面号，计算物理位置。只支持管理员权限用户查询。
参数说明：
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| tablespace_name | NAME    | 段对象所属的表空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| bucketnode      | INTEGER | - 0\~1023表示hashbucket表的bucketnode。    - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| head_block_id   | BIGINT  | 指定的段头页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| block_id        | BIGINT  | 指定的逻辑页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
返回值说明：
| 名称            | 类型      | 描述                                 |
|:---|:---|:---|
| extent_id     | INTEGER | 逻辑页面所在的逻辑扩展号。                      |
| extent_size   | INTEGER | 逻辑页面所在的逻辑扩展的大小。                    |
| file_id       | INTEGER | 物理页面所在的数据文件标识。取值范围：\[1, 5\]的int4值。 |
| file_block_id | BIGINT  | 物理页面在数据文件中的偏移页面号。                  |
   
例如（下列操作需要在DN上执行，需要提前在表空间下创建过段页式普通表并插入过数据）：
```
gaussdb=# SELECT * FROM gs_seg_get_spc_location('pg_default', 1024, 4157, 0);
 extent_id | extent_size | file_id | file_block_id
-----------+-------------+---------+---------------
         0 |           8 |       2 |          4157
(1 row)
```
#### gs_seg_get_spc_location(relid OID, bucketnode INTEGER，block_id BIGINT, partition BOOLEAN DEFAULT FALSE，forknum INTEGER DEFAULT 0)
描述：给定段和逻辑页面号，计算物理位置。只支持管理员权限用户查询。
参数说明：
| 名称         | 类型                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| relid      | OID                   | 段对象标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| bucketnode | INTEGER               | - 0\~1023表示hashbucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| block_id   | BIGINT                | 指定逻辑页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| partition  | BOOLEAN DEFAULT FALSE | 段对象是否为分区，默认为FALSE。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| forknum    | INTEGER DEFAULT 0     | 段对象的分支，默认为0。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                                                                                                                                                     |
   
返回值说明：
| 名称            | 类型      | 描述                                 |
|:---|:---|:---|
| extent_id     | INTEGER | 逻辑页面所在的逻辑扩展号。                      |
| extent_size   | INTEGER | 逻辑页面所在的逻辑扩展的大小。                    |
| file_id       | INTEGER | 物理页面所在的数据文件标识。取值范围：\[1, 5\]的int4值。 |
| file_block_id | BIGINT  | 物理页面在数据文件中的偏移页面号。                  |
   
例如（下列操作需要在DN上执行，relid必须为合法的的段页式对象在该DN上的oid，且该对象需要存在数据）：
```
gaussdb=# SELECT * FROM gs_seg_get_spc_location(24578,1024, 0);
 extent_id | extent_size | file_id | file_block_id
-----------+-------------+---------+---------------
         0 |           8 |       2 |          4157
(1 row)
```
#### gs_seg_get_location(block_id BIGINT, as_extent BOOLEAN DEFAULT FALSE)
描述：给定段和逻辑页面号，计算物理位置。只支持管理员权限用户查询。
参数说明：
| 名称        | 类型                    | 描述                        |
|:---|:---|:---|
| block_id  | BIGINT                | 指定逻辑页面号。                  |
| as_extent | BOOLEAN DEFAULT FALSE | 参数block_id是否为扩展号，默认FALSE。 |
   
返回值说明：
| 名称                 | 类型      | 描述                  |
|:---|:---|:---|
| extent_id          | BIGINT  | 扩展号。                |
| extent_size        | INTEGER | 扩展的大小。              |
| extent_offset      | INTEGER | 扩展的偏移块号。            |
| level0_slots_idx   | INTEGER | 扩展在段头level0槽位数组下标。  |
| level1_slots_idx   | INTEGER | 扩展在段头level1槽位数组下标。  |
| level1_page_offset | INTEGER | 扩展在段头level1槽位页面的偏移。 |
| segment_blocks     | BIGINT  | 包含此页面或扩展的段的页面数。     |
| relative_fno       | INTEGER | 包含此页面或扩展的相对文件编号。    |
   
例如：
```
gaussdb=# SELECT * FROM gs_seg_get_location(4157);
 extent_id | extent_size | extent_offset | level0_slots_idx | level1_slots_idx | level1_page_offset | segment_blocks | relative_fno
-----------+-------------+---------------+------------------+------------------+--------------------+----------------+--------------
        47 |         128 |            61 |               47 |                  |                    |           4158 |            3
(1 row)
```
#### gs_seg_get_segment_layout()
描述：输出段的静态布局。只支持管理员权限用户查询。
返回值说明：
| 名称                 | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| version            | TEXT    | 段页式版本。默认：1.0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| section_id         | INTEGER | 段划分的数据区号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| section_type       | TEXT    | 段数据区扩展类型。 取值范围： - meta：段头。    - data：数据。   |
| extent_size        | INTEGER | 扩展大小。单位为字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| extent_page_count  | INTEGER | 扩展页面数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| extent_count_start | BIGINT  | 起始扩展号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| extent_count_end   | BIGINT  | 终止扩展号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| total_size         | BIGINT  | 段数据区的大小。单位为字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
例如：
```
gaussdb=# SELECT * FROM gs_seg_get_segment_layout();
 version | section_id | section_type | extent_size | extent_page_count | extent_count_start | extent_count_end |   total_size
---------+------------+--------------+-------------+-------------------+--------------------+------------------+----------------
 1.0     |          1 | meta         |        8192 |                 1 |                  0 |                0 |           8192
 1.0     |          2 | data         |       65536 |                 8 |                  1 |               16 |        1048576
 1.0     |          3 | data         |     1048576 |               128 |                 17 |              143 |      134217728
 1.0     |          4 | data         |     8388608 |              1024 |                144 |              255 |     1073741824
 1.0     |          5 | data         |    33554432 |              4096 |                256 |          1025255 | 34394366541824
(5 rows)
```
#### gs_seg_get_datafile_layout()
描述：查看1\~5号数据文件的静态布局。只支持管理员权限用户查询。
返回值说明：
| 名称               | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| version          | TEXT    | 段页式版本。默认：1.0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| seg_storage_type | TEXT    | - segment表示普通段页式数据。  - hashbucket表示hashbucket数据。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| file_id          | INTEGER | 数据文件标识。取值范围：\[1, 5\]的int4值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| section_id       | INTEGER | 数据文件划分的数据区号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| section_type     | TEXT    | 数据文件区类型。 取值范围： - file_header表示文件头。  - spc_header表示空间头。  - map_header表示映射头。  - map_pages表示映射页面。  - ip_pages(inverse pointer pages)表示反向指针页面。  - data_pages表示数据页面。   |
| page_start       | BIGINT  | 数据区域起始页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| page_end         | BIGINT  | 数据区域结束页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| page_count       | BIGINT  | 数据区域页面数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| total_size       | BIGINT  | 数据区的大小。单位为字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
例如：
```
gaussdb=# SELECT * FROM gs_seg_get_datafile_layout();
 version | seg_storage_type | file_id | section_id | section_type |  page_start  |   page_end   | page_count  |   total_size
---------+------------------+---------+------------+--------------+--------------+--------------+-------------+-----------------
 1.0     | segment          |       1 |          0 | file_header  |            0 |            0 |           1 |            8192
 1.0     | segment          |       1 |          1 | spc_header   |            1 |            1 |           1 |            8192
 1.0     | segment          |       1 |          2 | map_header   |            2 |            2 |           1 |            8192
 1.0     | segment          |       1 |          3 | map_pages    |            3 |           66 |          64 |          524288
 1.0     | segment          |       1 |          4 | ip_pages     |           67 |         4156 |        4090 |        33505280
 1.0     | segment          |       1 |          5 | data_pages   |         4157 |      4147260 |     4143104 |     33940307968
...(数据较多，仅展示部分)
```
#### gs_seg_get_slice_layout(file_id INTEGER, bucketnode INTEGER,slice_id INTEGER)
描述：输出给定数据文件分片的静态布局。只支持管理员权限用户查询。
参数说明：
| 名称         | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| file_id    | INTEGER | 数据文件标识。取值范围：\[1, 5\]的int4值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| bucketnode | INTEGER | - 0\~1023表示hash bucket表的bucketnode。    - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| slice_id   | INTEGER | Slice文件标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
返回值说明：
| 名称           | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| version      | TEXT    | 段页式版本。默认：1.0。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| section_id   | INTEGER | 数据文件划分的数据区号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| section_type | INTEGER | 数据文件区类型。 取值范围： - file_header表示文件头。  - spc_header表示空间头。  - map_header表示映射头。  - map_pages表示映射页面。  - ip_pages(inverse pointer pages)表示反向指针页面。  - data_pages表示数据页面。   |
| page_start   | BIGINT  | 数据区域起始页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| page_end     | BIGINT  | 数据区域结束页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| page_count   | BIGINT  | 数据区域页面数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| total_size   | BIGINT  | 数据区的大小。单位为字节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
例如：
```
gaussdb=# SELECT * FROM gs_seg_get_slice_layout(1,1024,0);
 version | section_id | section_type | page_start | page_end | page_count | total_size
---------+------------+--------------+------------+----------+------------+------------
 1.0     |          0 | file_header  |          0 |        0 |          1 |       8192
 1.0     |          1 | spc_header   |          1 |        1 |          1 |       8192
 1.0     |          2 | map_header   |          2 |        2 |          1 |       8192
 1.0     |          3 | map_pages    |          3 |       66 |         64 |     524288
 1.0     |          4 | ip_pages     |         67 |     4156 |       4090 |   33505280
 1.0     |          5 | data_pages   |       4157 |   131071 |     126915 | 1039687680
(6 rows)
```
#### gs_seg_get_segment(tablespace_name NAME, bucketnode INTEGER, head_block_id BIGINT)
描述：输出该表空间下段头文件里段头页面的段头信息。只支持管理员权限用户查询。
参数说明：
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| tablespace_name | NAME    | 段对象所属的表空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| bucketnode      | INTEGER | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| head_block_id   | BIGINT  | 段头页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
返回值说明：
| 名称            | 类型         | 描述               |
|:---|:---|:---|
| blocks        | BIGINT     | 段对象的逻辑页面数。       |
| total_blocks  | BIGINT     | 段对象的物理页面数。       |
| extents       | INTEGER    | 段对象的逻辑扩展数。       |
| total_extents | INTEGER    | 段对象的物理扩展数。       |
| head_lsn      | TEXT       | 段头lsn标识。         |
| level0_slots  | BIGINT\[\] | 段扩展映射level0槽位数组。 |
| level1_slots  | BIGINT\[\] | 段扩展映射level1槽位数组。 |
| fork_head     | BIGINT\[\] | 段对象的分支段头数组。      |
   
例如（下列操作需要在创建过段页式普通表后再执行）：
```
gaussdb=# SELECT * FROM gs_seg_get_segment('pg_default', 1024, 4157);
 blocks | total_blocks | extents | total_extents | head_lsn | level0_slots | level1_slots |   fork_head
--------+--------------+---------+---------------+----------+--------------+--------------+----------------
      9 |           16 |       2 |             2 | 62211744 | {4157,4165}  | {}           | {4157,4158,-1}
(1 row)
```
#### gs_seg_get_segment(relid OID, bucketnode INTEGER, partition BOOLEAN DEFAULT FALSE，forknum INTEGER DEFAULT 0)
描述：给定relid，bucketnode等信息输出对应的段头信息。只支持管理员权限用户查询。
参数说明：
| 名称         | 类型                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|
| relid      | OID                   | 表对应的OID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| bucketnode | INTEGER               | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| partition  | BOOLEAN DEFAULT FALSE | 段对象是否为分区，默认为false。 取值范围：bool，代表所传入的oid对应的对象是否为分区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| forknum    | INTEGER DEFAULT 0     | 数据文件fork号，默认为0。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                                                                                                                                                 |
   
返回值说明：
| 名称            | 类型         | 描述               |
|:---|:---|:---|
| blocks        | BIGINT     | 段对象的逻辑页面数。       |
| total_blocks  | BIGINT     | 段对象的物理页面数。       |
| extents       | INTEGER    | 段对象的逻辑扩展数。       |
| total_extents | INTEGER    | 段对象的物理扩展数。       |
| head_lsn      | TEXT       | 段头lsn标识。         |
| level0_slots  | BIGINT\[\] | 段扩展映射level0槽位数组。 |
| level1_slots  | BIGINT\[\] | 段扩展映射level1槽位数组。 |
| fork_head     | BIGINT\[\] | 段对象的分支段头数组。      |
   
例如（下列操作需要在DN上执行，relid必须为查询的段页式对象在该DN上的oid）：
```
gaussdb=# SELECT * FROM gs_seg_get_segment(16768, 1024);
 blocks | total_blocks | extents | total_extents | head_lsn | level0_slots | level1_slots |   fork_head
--------+--------------+---------+---------------+----------+--------------+--------------+----------------
      9 |           16 |       2 |             2 | 62211744 | {4157,4165}  | {}           | {4157,4158,4294967295}
(1 row)
```
#### gs_seg_get_extents(tablespace_name NAME, bucketnode INTEGER, head_block_id BIGINT)
描述：输出该表空间下段头文件里段头页面的段对象的所有扩展，包含1号文件中的segment head、fork head、level1 page，2\~5号文件中的data extent。只支持管理员权限用户查询。
参数说明：
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| tablespace_name | NAME    | 段对象所属的表空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| bucketnode      | INTEGER | - 0\~1023表示hash bucket表的bucketnode。    - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| head_block_id   | BIGINT  | 段头页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
返回值说明：
| 名称         | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| extent_id  | INTEGER | 逻辑扩展号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| file_id    | INTEGER | 扩展所在的数据文件标识。取值范围：\[1, 5\]的int4值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| forknum    | INTEGER | 段对象的分支。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                             |
| block_id   | BIGINT  | 扩展所在的数据文件中的起始页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| blocks     | INTEGER | 扩展大小。 取值范围： - 1表示1号文件。  - 8表示2号文件。  - 128表示3号文件。  - 1024表示4号文件。  - 4096表示5号文件。   |
| usage_type | TEXT    | Extent的使用类型。 取值范围： - segment head表示段头。  - fork head表示分支头。  - level1 page表示level页面。  - data extent表示数据扩展。                                                                                                                          |
   
例如（下列操作需要在创建过段页式普通表后再执行）：
```
gaussdb=# SELECT * FROM gs_seg_get_extents('pg_default', 1024, 4157);
 extent_id | file_id | forknum | block_id | blocks |  usage_type
-----------+---------+---------+----------+--------+--------------
           |       1 |       0 |     4157 |      1 | segment head
         0 |       2 |       0 |     4157 |      8 | data extent
         1 |       2 |       0 |     4165 |      8 | data extent
(3 rows)
```
#### gs_seg_get_extents(relid OID, bucketnode INTEGER, partition BOOLEAN DEFAULT FALSE，forknum INTEGER DEFAULT 0)
描述：输出对应段头文件里段头页面的段对象的所有扩展，包含1号文件中的segment head、fork head、level1 page，2\~5号文件中的data extent。只支持管理员权限用户查询。
参数说明：
| 名称         | 类型                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| relid      | OID                   | 表对应的OID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| bucketnode | INTEGER               | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| partition  | BOOLEAN DEFAULT FALSE | 段对象是否为分区，默认为false。 取值范围：boolean，代表所传入的oid对应的对象是否为分区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| forknum    | INTEGER DEFAULT 0     | 数据文件fork号，默认为0。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                                                                                                                                                       |
   
返回值说明：
| 名称         | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| extent_id  | INTEGER | 逻辑扩展号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| file_id    | INTEGER | 扩展所在的数据文件标识。取值范围：\[1, 5\]的int4值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| forknum    | INTEGER | 段对象的分支。 取值范围： - 0：main fork。    - 1：fsm fork。    - 2：vm fork。                                                                                                                                                             |
| block_id   | BIGINT  | 扩展所在的数据文件中的起始页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| blocks     | INTEGER | 扩展大小。 取值范围： - 1表示1号文件。  - 8表示2号文件。  - 128表示3号文件。  - 1024表示4号文件。  - 4096表示5号文件。   |
| usage_type | TEXT    | Extent的使用类型。 取值范围： - segment head表示段头。  - fork head表示分支头。  - level1 page表示level页面。  - data extent表示数据扩展。                                                                                                                                          |
   
例如（下列操作中relid必须是合法的段页式对象的oid）:
```
gaussdb=# SELECT * FROM gs_seg_get_extents(16768, 1024);
 extent_id | file_id | forknum | block_id | blocks |  usage_type
-----------+---------+---------+----------+--------+--------------
           |       1 |       0 |     4157 |      1 | segment head
         0 |       2 |       0 |     4157 |      8 | data extent
         1 |       2 |       0 |     4165 |      8 | data extent
(3 rows)
```
#### gs_seg_free_spc_remain_segment(tablespace_name NAME, head_file_id INTEGER, bucketnode INTEGER, head_block_id BIGINT)
描述：释放指定表空间上的段页式残留段在1号文件上占用的页面。残留段可以在[GS_SEG_SPC_REMAIN_SEGMENTS](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1074.html#ZH-CN_TOPIC_0000002559106199)视图中查询。只支持管理员权限用户查询。且仅允许在主机执行。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
- 当前该函数存在缺陷，计划在后续版本重构，以彻底解决段页式残留问题，该函数为离线兜底的段页式清理手段。
- 为保证查询到的残留段和残留扩展的一致性，以及残留清理的一致性，该函数及[GS_SEG_SPC_REMAIN_SEGMENTS](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1074.html#ZH-CN_TOPIC_0000002559106199)视图应在DDL\\DML受限状态下执行。鉴于当前版本并未提供DML\\DDL受限能力，用户在是使用该特性时，应保证其执行环境DML\\DDL受限状态。
- 该函数需要在参数enable_segment_remain_cleanup取值为off时使用。
 
参数说明：
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| tablespace_name | NAME    | 表空间名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| head_file_id    | INTEGER | 段页式残留段的段头所在的数据文件标识。取值范围：【1】。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| bucketnode      | INTEGER | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| head_block_id   | BIGINT  | 指定的段头页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
返回值说明：void
例如：
```
gaussdb=# SELECT * FROM gs_seg_free_spc_remain_segment('pg_default', 1, 1024, 4159);
 gs_seg_free_spc_remain_segment 
--------------------------------
(1 row)
```
#### gs_seg_free_spc_remain_extent(tablespace_name NAME, file_id INTEGER, bucketnode INTEGER, forknum INTEGER, block_id BIGINT)
描述：释放指定表空间上残留的段页式孤立扩展。残留的孤立扩展可以在[GS_SEG_SPC_REMAIN_EXTENTS](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-1073.html#ZH-CN_TOPIC_0000002558946299)视图中查询。只支持管理员权限用户查询。且仅允许在主机执行。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
该函数需要在参数enable_segment_remain_cleanup取值为off时使用。
参数说明：
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| tablespace_name | NAME    | 表空间名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| file_id         | INTEGER | 段页式残留扩展所在数据文件标识。取值范围：【1\~5】号文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| bucketnode      | INTEGER | - 0\~1023表示hash bucket表的bucketnode。  - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| forknum         | INTEGER | 数据文件分支编号。 取值范围： - 0：main fork。  - 1：fsm fork。  - 2：vm fork。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| block_id        | BIGINT  | 指定的段头页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
返回值说明：void
例如：
```
gaussdb=# SELECT * FROM gs_seg_free_spc_remain_extent('pg_default', 1, 1024， 0, 4159);
 gs_seg_free_spc_remain_extent 
-------------------------------
(1 row)
```
#### gs_seg_get_datafiles(database_name NAME)
描述：输出查看实例所有数据文件信息。只支持管理员权限用户查询。
参数说明：
| 名称            | 类型   | 描述                                     |
|:---|:---|:---|
| database_name | NAME | 数据库名称。默认为current_database()，代表当前数据库名称。 |
   
返回值说明：
| 名称              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| file_name       | TEXT    | 数据文件名。例如：base/17467/2_fsm。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| file_id         | INTEGER | 数据文件标识。取值范围：【1\~5】号文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| bucketnode      | INTEGER | - 0\~1023表示hash bucket表的bucketnode。    - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| forknum         | INTEGER | 数据文件分支类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| tablespace_name | NAME    | 数据文件所属的表空间名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| contents        | TEXT    | 数据文件的存储内容。 取值范围： - permanent：永久。  - unlogged：不记录日志。  - temporary：全局临时。  - temporary2：本地临时。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| extent_size     | INTEGER | 数据文件的扩展大小。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| meta_blocks     | BIGINT  | 数据文件的已分配的元页面数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| data_blocks     | BIGINT  | 数据文件的已分配的数据页面数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| total_blocks    | BIGINT  | 数据文件的总物理页面数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| high_water_mark | BIGINT  | 数据文件使用页数的高水位线。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| utilization     | REAL    | 使用的block数占总block数的百分比。即(data_blocks+meta_blocks)/total_blocks。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
例如（下列操作需要在创建过段页式表后再执行）:
```
gaussdb=# SELECT * FROM gs_seg_get_datafiles();
  file_name   | file_id | bucketnode | forknum | tablespace_name | contents  | extent_size | meta_blocks | data_blocks | total_blocks | high_water_mark | utilization
--------------+---------+------------+---------+-----------------+-----------+-------------+-------------+-------------+--------------+-----------------+-------------
 base/15949/1 |       1 |       1024 |       0 | pg_default      | permanent |           1 |        4157 |           1 |        16384 |      1048702976 | 2.24208e-44
 base/15949/2 |       2 |       1024 |       0 | pg_default      | permanent |           8 |        4157 |           8 |        16384 |      1048717312 | 2.24208e-44
(2 rows)
```
#### gs_seg_get_spc_extents(tablespace_name NAME, file_id INTEGER, bucketnode INTEGER, forknum INTEGER, skip_unused BOOLEAN DEFAULT TRUE)
描述：获取指定表空间所有扩展信息。只支持管理员权限用户查询。
参数说明：
| 名称              | 类型                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| tablespace_name | NAME                 | 表空间名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| file_id         | INTEGER              | 数据文件标识。取值范围：\[1, 5\]的int4值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| bucketnode      | INTEGER              | - 0\~1023表示hash bucket表的bucketnode。    - 1024表示段页式普通表的bucketnode。  - 1025表示段页式全局临时表的bucketnode。  - 1026表示段页式unlogged表的bucketnode。  - 1027表示段页式本地临时表的bucketnode。  - 2048\~6143表示rangebucket表的bucketnode。   |
| forknum         | INTEGER              | 数据文件分支。 取值范围： - 0：main fork。  - 1：fsm fork。  - 2：vm fork。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| skip_unused     | BOOLEAN DEFAULT TRUE | 是否只输出已分配的extent，默认为TRUE，代表只输出已分配的extent。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
返回值说明：
| 名称                | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| block_id          | BIGINT  | 数据扩展的起始页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| blocks            | INTEGER | 数据扩展大小。 取值范围： - 1表示1号文件。  - 8表示2号文件。  - 128表示3号文件。  - 1024表示4号文件。  - 4096表示5号文件。   |
| contents          | TEXT    | 存储内容。 取值范围： - permanent表示永久。  - unlogged表示不记录日志。  - temporary表示全局临时。  - temporary2表示本地临时。                                                                                                                                                   |
| in_used           | TEXT    | 是否已分配。 取值范围： - Y表示已分配。  - N表示未分配。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| mapblock_location | TEXT    | 扩展在map block中的位置。格式：(page_id, offset)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| head_file_id      | INTEGER | 段头所在数据文件标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| head_block_id     | BIGINT  | 段头页面号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| usage_type        | TEXT    | Extent的使用类型。 取值范围： - segment head表示段头。  - fork head表示分支头。  - level1 page表示level页面。  - data extent表示数据扩展。                                                                                                                              |
| remain_flag       | TEXT    | 是否为shrink残留扩展。 取值范围： - Y表示是shrink残留扩展。  - N表示不是shrink残留扩展。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| special_data      | INTEGER | 扩展对应反向指针的特殊数据区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ipblock_location  | TEXT    | 扩展反向指针位置。格式：(block_id, offset)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
例如：
```
gaussdb=# SELECT * FROM gs_seg_get_spc_extents('pg_default', 1,1024, 0);
 block_id | blocks | contents  | in_used | mapblock_location | head_file_id | head_block_id |  usage_type  | remain_flag | special_data | ipblock_location
----------+--------+-----------+---------+-------------------+--------------+---------------+--------------+-------------+--------------+------------------
     4157 |      1 | permanent | Y       | (4157,0)          |            1 |          4157 | segment head | N           |            0 | (67,0)
     4158 |      1 | permanent | Y       | (4157,1)          |            1 |          4158 | fork head    | N           |            1 | (67,1)
(2 rows)
```
