PLAN_TABLE_DATA
PLAN_TABLE_DATA存储了用户通过执行EXPLAIN PLAN收集到的计划信息。与PLAN_TABLE视图不同的是PLAN_TABLE_DATA表存储了所有session和user执行EXPLAIN PLAN收集的计划信息。
名称 |
类型 |
描述 |
---|---|---|
session_id |
text |
表示插入该条数据的会话,由服务线程启动时间戳和服务线程ID组成。受非空约束限制。 |
user_id |
oid |
用户ID,用于标识触发插入该条数据的用户。受非空约束限制。 |
statement_id |
character varying(30) |
用户输入的查询标签。 |
plan_id |
bigint |
查询计划标识。该标识在计划生成阶段自动产生,供内核工程师调试使用。 |
id |
integer |
计划中的节点编号。 |
operation |
character varying(30) |
操作描述。 |
options |
character varying(255) |
操作选项。 |
object_name |
name |
操作对应的对象名,来自于用户定义。 |
object_type |
character varying(30) |
对象类型。 |
object_owner |
name |
对象所属schema,来自于用户定义。 |
projection |
character varying(4000) |
操作输出的列信息。 |
cost |
double precision |
优化器对算子估算的执行代价。 |
cardinality |
double precision |
优化器对算子估算的结果行数。 |
- PLAN_TABLE_DATA中包含了当前节点所有用户、所有会话的数据,仅管理员有访问权限。普通用户可以通过PLAN_TABLE视图查看属于自己的数据。
- 对于不活跃(已退出)的会话,其在PLAN_TABLE_DATA中的数据会在一定时间(默认5min)后被gs_clean清理。用户也可以手动执行gs_clean -C选项对表中不活跃的会话数据进行清理,详见《工具参考》中“服务端工具 > gs_clean”章节。
- PLAN_TABLE_DATA中的数据是用户通过执行EXPLAIN PLAN命令后由系统自动插入表中,因此禁止用户手动对数据进行插入或更新,否则会引起表中的数据混乱。需要对表中数据删除时,建议通过PLAN_TABLE视图或参考《工具参考》中“服务端工具 > gs_clean”章节来实现。
- statement_id、object_name、object_owner和projection字段内容遵循用户定义的大小写存储,其它字段内容采用大写存储。