HG_STAT_ACTIVITY(PG_STAT_ACTIVITY)View

Hologres V2.0版本开始,PG_STAT_ACTIVITY升级为HG_STAT_ACTIVITY视图。HG_STAT_ACTIVITYPG_STAT_ACTIVITY视图的扩展,您可以通过HG_STAT_ACTIVITY视图查询到活跃SQL更详细的运行信息,包括query idquery engine以及资源消耗等信息,从而帮助您更进一步诊断活跃Query。

查询HG_STAT_ACTIVITY(PG_STAT_ACTIVITY)视图信息

您可以执行如下命令查看Query的运行信息。其他Postgres兼容管理工具,依旧可以查询pg_stat_activity获取SQL运行态信息。

--2.0及以上推荐语法
SELECT *  FROM HG_STAT_ACTIVITY;

--1.3及以下版本语法
SELECT *  FROM PG_STAT_ACTIVITY;

HG_STAT_ACTIVITY视图的字段说明如下所示:

字段

描述

HG_STAT_ACTIVITY视图支持情况

PG_STAT_ACTIVITY视图支持情况

datid

Hologres后端连接到的数据库的OID。

支持

支持

datname

Hologres后端连接到的数据库的名称。

支持

支持

pid

Hologres后端的进程ID。

支持

支持

query_id

当前执行SQLID,一个SQL对应一个query_id。

支持

不支持

transaction_id

当前SQL所属的事务ID,一个事务中可能有多个SQL。

支持

不支持

usesysid

当前活跃会话用户的系统标识符。

支持

支持

usename

当前连接的用户名。

支持

支持

application_name

客户端的应用类型。

其中常见的应用类型如下:

  • 阿里云Flink(VVR版):{client_version}_ververica-connector-hologres

  • 开源Flink:{client_version}_hologres-connector-flink

  • DataWorks数据集成离线同步读取Hologres:datax_{jobId}

  • DataWorks数据集成离线同步写入Hologres:{client_version}_datax_{jobId}

  • DataWorks数据集成实时同步:{client_version}_streamx_{jobId}

  • HoloWeb:holoweb

  • MaxCompute中通过外部表的方式访问Hologres:MaxCompute

  • Holo Client发起的读Hologres Binlog进程:holo_client_replication。该类型的任务不会显示Query内容。

其余应用建议业务上在连接Hologres时连接串上显式指定application_name

支持

支持

running_info

包含SQL执行过程各种状态信息,格式为JSON格式。其子字段包括:

  • current_resource

    Serverless:仅使用Serverless资源执行的Query有该字段。

  • current_stage

    • stage_name<PARSE|OPTIMIZE|QUEUE|START|EXECUTE|FINISH>:

      • PARSE:SQL解析。

        说明

        如果SQLPARSE阶段,则无法显示执行引擎engine_type。

      • OPTIMIZE:生成执行计划。

      • QUEUE:等待资源。

      • START:Query开始阶段。

      • EXECUTE:Query执行阶段。

      • FINISH:Query完成。

    • stage_duration_ms: 当前Stage到现在消耗的时间(单位毫秒)。

    • queue_time_ms:排队等待时长(单位:毫秒),仅Serverless Query有该字段。

    • serverless_allocated_cores:申请的Serverless资源量(单位:CU),仅Serverless Query有该字段。

    • serverless_allocated_workers:申请的Serverless资源Worker数(单位:个),仅Serverless Query有该字段。

  • engine_type:当前Query的执行引擎。

    • {HQE}:Hologres引擎。

    • {HQE,PQE}:走PQESQL。

    • {PG}:系统SQL,无需过多关注。

    • {SDK}{FixedQE}:Fixed Plan SQL。

      说明

      Hologres V2.2版本之前,Fixed Plan SQLengine_type{SDK}类型;自Hologres V2.2版本开始,Fixed Plan SQLengine_type{SDK}变更为{FixedQE}类型。

    • {HQE,SQE}:未使用直读的MaxCompute外部表SQL。

    • {HQE,HiveQE}: 未使用直读的OSS外部表SQL。

    • {HQE,SQE,HiveQE}:未直读的外部表SQL。

  • fe_id:FE节点对应的ID。

  • warehouse_id:如果实例是warehouse模式,代表warehouseID。

支持

不支持

extend_info

包含SQL执行过程资源消耗等的扩展信息,为JSON格式。其子字段包括:

  • total_cpu_max_time_ms:SQL累积CPU消耗(单位毫秒)。

  • total_mem_max_bytes:Query中各算子内存最大值之和(单位byte)。

  • scanned_rows:Query已读取数据的总行数。

  • affected_rows:DML语句影响的行数。

  • be_lock_waiters:当前SQL拿锁情况,表示当前SQL拿着锁,谁(Query_id)在等这个SQL释放锁。

说明

be_lock_waiters采集的都是backend的锁,而不是frontend的锁,排查锁请参见锁以及排查锁

支持

不支持

state

表示连接的状态。常见的状态如下:

  • active:活跃。

  • idle:空闲。

  • idle in transaction:长事务中的空闲状态。

  • idle in transaction(Aborted):已失败事务中的空闲状态。

  • \N: 状态为空,表示非用户连接的进程,一般属于系统后台的维护进程,可以忽略。

支持

支持

query_start

Query开始执行的时间,如果active不是active,取值为上一个查询开始的时间。

支持

支持

client_addr

客户端的IP地址。

显示的IP地址可能是被解析过的,不保证一定是源端IP。

支持

支持

client_hostname

客户端的主机名。

支持

支持

client_port

客户端的端口。

支持

支持

backend_start

后台进程开始的时间。

Hologres中无需过多关注。

支持

支持

xact_start

该进程的当前事务被启动的时间。

  • 如果没有活动事务,则为空。

  • 如果当前查询是该进程的第一个事务,这一列等于query_start

Hologres中无需过多关注。

支持

支持

state_change

连接的状态(state)上一次被改变的时间。

Hologres中无需过多关注。

支持

支持

wait_event_type

后端正在等待的事件类型,如果不存在则为NULL。可能的取值有:

  • LWLock:后端正在等待一个轻量级锁。

  • Lock:后端正在等待一个重量级锁。wait_event将标识等待的锁的类型。

  • BufferPin:服务器进程正在等待访问一个数据缓冲区,而此时没有其他进程正在检查该缓冲区。

  • Activity:服务器进程处于闲置状态。被用于在其主处理循环中等待活动的系统进程。

  • Extension:服务器进程正在一个扩展模块中等待活动。

  • Client:服务器进程正在等待来自用户应用的某种查询,并且该服务器预期某种与其内部处理无关的事情发生。

  • PC:服务器进程正在等待来自服务器中另一个进程的某种活动。

  • Timeout:服务器进程正在等待一次超时发生。

  • IO:服务器进程正在等待一次IO完成。

支持

支持

wait_event

如果后端当前正在等待,则是等待事件的名称,否则为 NULL。

支持

支持

backend_xid

Hologres后端的顶层事务标识符。

支持

支持

backend_xmin

当前后端的xmin范围。

支持

支持

query

后端最近执行的查询。如果stateactive,将会显示当前正在执行的查询。在其他状态下,显示上一个被执行的查询。

支持

支持

backend_type

当前后端的类型。可能的类型为autovacuum launcher、autovacuum worker、logical replication launcher、logical replication worker、parallel worker、background writer、client backend、checkpointer、startup、walreceiver、walsender以及 walwriter。除此之外还包括后端的执行组件,例如PQE等。

说明

需要关注client backend类型,代表应用的连接。

支持

支持