云数据库 GAUSSDB-STATEMENT
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字段中体现。
名称 |
类型 |
描述 |
---|---|---|
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的增加次数。