更新时间:2024-11-12 GMT+08:00
分享

STATEMENT

获得当前节点的执行语句(归一化SQL)的信息,如表1所示。CN上可以看到此CN接收到的归一化的SQL的全量统计信息(包含DN);DN上仅可看到归一化的SQL的此节点执行的统计信息。

  • 不同的savepoint_name所生成的unique_sql_id不同,大量使用savepoint_name时会导致系统中产生的unique_sql_id信息快速上涨,若unique_sql_id数量高于instr_unique_sql_count数量时,新产生的unique_sql_id信息将不被统计。
  • 当前版本暂不支持对FOR UPDATE关键字进行识别并归一化处理。例如:SELECT * FROM table; 与SELECT * FROM table FOR UPDATE WAIT N; 会被归一化处理为相同的归一化SQL,在query字段中体现。
表1 STATEMENT字段

名称

类型

描述

node_name

name

节点名称。

node_id

integer

节点的ID(pgxc_node中的node_id)。

user_name

name

用户名称。

user_id

oid

用户OID。

unique_sql_id

bigint

归一化的SQL ID。

query

text

归一化的SQL。

备注:长度受track_activity_query_size控制。

n_calls

bigint

调用次数。

min_elapse_time

bigint

SQL在内核内的最小运行时间(单位:微秒)。

max_elapse_time

bigint

SQL在内核内的最大运行时间(单位:微秒)。

total_elapse_time

bigint

SQL在内核内的总运行时间(单位:微秒)。

n_returned_rows

bigint

SELECT返回的结果集行数。

n_tuples_fetched

bigint

随机扫描行。

n_tuples_returned

bigint

顺序扫描行。

n_tuples_inserted

bigint

插入行。

n_tuples_updated

bigint

更新行。

n_tuples_deleted

bigint

删除行。

n_blocks_fetched

bigint

逻辑读次数。

n_blocks_hit

bigint

内存中命中次数。

n_soft_parse

bigint

软解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。

n_hard_parse

bigint

硬解析次数,n_soft_parse + n_hard_parse可能大于n_calls,因为子查询未计入n_calls。

db_time

bigint

有效的数据库内部时间花费,多线程将累加(单位:微秒)。

cpu_time

bigint

CPU时间(单位:微秒)。

execution_time

bigint

执行器内执行时间(单位:微秒)。

parse_time

bigint

SQL解析时间(单位:微秒)。

plan_time

bigint

SQL生成计划时间(单位:微秒)。

rewrite_time

bigint

SQL重写时间(单位:微秒)。

pl_execution_time

bigint

plpgsql上的执行时间(单位:微秒)。

pl_compilation_time

bigint

plpgsql上的编译时间(单位:微秒)。

data_io_time

bigint

IO上的时间花费(单位:微秒)。

net_send_info

text

通过物理连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,CN与CN、CN与客服端以及CN与DN之间都是通过物理连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。

例如:{"time":xxx, "n_calls":xxx, "size":xxx}

net_recv_info

text

通过物理连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,CN与CN、CN与客服端以及CN与DN之间都是通过物理连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。

例如:{"time":xxx, "n_calls":xxx, "size":xxx}

net_stream_send_info

text

通过逻辑连接发送消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,不同分片的DN之间通过逻辑连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。

例如:{"time":xxx, "n_calls":xxx, "size":xxx}

net_stream_recv_info

text

通过逻辑连接接收消息的网络状态,包含时间(微秒)、调用次数、吞吐量(字节)。在分布式数据库中,不同分片的DN之间通过逻辑连接进行通信,通过该字段可以分析SQL在分布式系统下的网络开销。

例如:{"time":xxx, "n_calls":xxx, "size":xxx}

last_updated

timestamp with time zone

最后一次更新该语句的时间。

sort_count

bigint

排序执行的次数。

sort_time

bigint

排序执行的时间(单位:微秒)。

sort_mem_used

bigint

排序过程中使用的work memory大小(单位:KB)。

sort_spill_count

bigint

排序过程中,若发生落盘,写文件的次数。

sort_spill_size

bigint

排序过程中,若发生落盘,使用的文件大小(单位:KB)。

hash_count

bigint

hash执行的次数。

hash_time

bigint

hash执行的时间(单位:微秒)。

hash_mem_used

bigint

hash过程中使用的work memory大小(单位:KB)。

hash_spill_count

bigint

hash过程中,若发生落盘,写文件的次数。

hash_spill_size

bigint

hash过程中,若发生落盘,使用的文件大小(单位:KB)。

parent_unique_sql_id

bigint

父语句的unique_sql_id,非存储过程子语句该值为0。

lock_wait_time

bigint

SQL的等锁时间(单位:微秒)。

total_used_memory

bigint

归一化语句的内存使用总量(单位:MB)。

max_used_memory

integer

单条语句的最大内存使用量(单位:MB)。

min_used_memory

integer

单条语句的最小内存使用量(单位:MB)。

db_name

name

连接后端的数据库名称。

db_id

oid

连接后端的数据库OID。

n_calls表示实际调用次数,对于存储过程内的fetch语句,fetch语句的实际触发次数,对应该cursor实际执行的语句的n_calls的增加次数。

相关文档