# DBE_HEAT_MAP
#### 接口介绍
DBE_HEAT_MAP根据输入的参数，返回目标数据块中行的最后修改时间等信息，用于直观浏览每一行被判定为冷、热行的依据。该接口属于运维类接口，不做可见性判断，即传入的ctid为已删除的行时，该接口依然会返回当前行在页面上最新的状态。DBE_HEAT_MAP支持的接口请参见[表1]。跨页透明压缩不支持此高级包，跨页透明压缩表查询结果中行的最后修改时间为空。
 表1DBE_HEAT_MAP 
| 接口名称                                                                        | 描述                                               |
|:---|:---|
| [DBE_HEAT_MAP.ROW_HEAT_MAP] | 根据对象所属Schema、数据对象名称、数据对象分区名及ctid获取行的最后修改时间等信息。 |
   
- DBE_HEAT_MAP.ROW_HEAT_MAP
  根据对象所属Schema、数据对象名称、数据对象分区名及ctid获取行的最后修改时间等信息。
  DBE_HEAT_MAP.ROW_HEAT_MAP原型为：
  ```
  BE_HEAT_MAP.ROW_HEAT_MAP(
  OWNER           IN VARCHAR2,
  SEGMENT_NAME    IN VARCHAR2,
  PARTITION_NAME  IN VARCHAR2     DEFAULT NULL,
  CTID            IN TEXT,
  V_DEBUG         IN BOOL         DEFAULT FALSE,
  BUCKETID        IN pg_catalog.int2 DEFAULT NULL))
  ```
  表2DBE_HEAT_MAP.ROW_HEAT_MAP接口参数说明 
  | 参数 | 描述            |
  |:---|:---|
  | OWNER                                        | 数据对象所属schema。 |
  | SEGMENT_NAME                                 | 数据对象名称。                                                 |
  | PARTITION_NAME                                 | 数据对象分区名，可选参数，默认为NULL。                                   |
  | CTID                                         | 目标行的ctid，即block_id或row_id。                                |
  | V_DEBUG                                        | debug调试，增加日志打印。                                          |
  | BUCKETID                                    | 目标行的tablebucketid。                                     |
     
  表3DBE_HEAT_MAP.ROW_HEAT_MAP输出参数 
  | 参数             | 描述                              |
  |:---|:---|
  | OWNER          | 数据对象的所有者。                        |
  | SEGMENT_NAME    | 数据对象名称。                          |
  | PARTITION_NAME  | 数据对象分区名称，可选参数。                   |
  | TABLESPACE_NAME | 数据所属的表空间名称。                     |
  | FILE_ID         | 行所属的绝对文件id。                      |
  | RELATIVE_FNO      | 行所属的相对文件id（GaussDB中无此逻辑，因此取值同上）。 |
  | CTID             | 行的ctid，即block_id或row_id。         |
  | WRITETIME      | 行的最后修改时间。                         |
     
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  DBE_HEAT_MAP.ROW_HEAT_MAP 接口只支持分布式数据库中数据节点（DN），其他节点暂不支持。
  示例：
  ```
  gaussdb=# ALTER DATABASE set ilm = on;
  gaussdb=# CREATE SCHEMA HEAT_MAP_DATA;
  gaussdb=# SET current_schema=HEAT_MAP_DATA;
  gaussdb=# CREATE TABLESPACE example1 RELATIVE LOCATION 'tablespace1';
  gaussdb=# CREATE TABLE HEAT_MAP_DATA.heat_map_table(id INT, value TEXT) TABLESPACE example1;
  gaussdb=# INSERT INTO HEAT_MAP_DATA.heat_map_table VALUES (1, 'test_data_row_1');
  gaussdb=# SELECT * FROM DBE_HEAT_MAP.ROW_HEAT_MAP(
      owner         =>  'heat_map_data',
      segment_name  =>  'heat_map_table',
      partition_name  => NULL,
      ctid          =>  '(0,1)');
       owner     |  segment_name  | partition_name | tablespace_name | file_id | relative_fno | ctid  | writetime 
  ---------------+----------------+----------------+-----------------+---------+--------------+-------+-----------
   heat_map_data | heat_map_table |                | example1        |   17291 |        17291 | (0,1) | 
  (1 row)
  ```
  
 
