计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
本文导读

实时TopSQL

更新时间:2025-01-23 GMT+08:00

系统提供了不同级别的资源监控实时视图用来查询实时TopSQL。资源监控实时视图记录了查询作业运行时的资源使用情况(包括内存、下盘、CPU时间等)以及性能告警信息。

实时视图具体的对外接口如下表所示:

表1 资源监控实时视图

视图级别

节点范围

查询视图

query级别/perf级别

当前CN

GS_WLM_SESSION_STATISTICS

所有CN

PGXC_WLM_SESSION_STATISTICS

operator_realtime级别/operator级别

当前CN

GS_WLM_OPERATOR_STATISTICS

所有CN

PGXC_WLM_OPERATOR_STATISTICS

说明:
  • 视图级别取决于资源监控的等级,即参数resource_track_level的配置。
  • perf和operator级别会影响GS_WLM_SESSION_STATISTICS/PGXC_WLM_SESSION_INFO中的query_plan和warning字段的取值,详细内容参见SQL自诊断
  • 对外接口通过不同的前缀(gs与pgxc)来区分单CN查询视图以及集群级别查询视图。普通用户仅支持登录到集群的某个CN查询以gs为前缀的视图。
  • 查询此类实时视图时,因需要获取作业运行实时资源使用情况,会有一定的网络延时。
  • 实例故障时,实时TopSQL视图有可能记录不全。
  • 实时TopSQL中能够记录的SQL语句的规格是:
    • 不记录特殊数据定义语句,如:SET、RESET、SHOW、ALTER SESSION SET、SET CONSTRAINTS语句。
    • 记录数据定义语句,例如:执行CREATE、ALTER、DROP、GRANT、REVOKE和VACUUM语句。
    • 记录数据操作语句,例如:
      • 执行SELECT、INSERT、UPDATE和DELETE语句。
      • 执行explain analyze和explain performance场景。
      • 使用query级别/perf级别视图。
    • 记录函数与存储过程的调用入口语句,当GUC参数enable_track_record_subsql开启的情况下,可记录存储过程的部分内部语句(declare定义语句除外),仅会记录其中下发到DN执行的内部语句,未下发到DN执行的内部语句会被过滤掉;
    • 记录匿名块语句,当GUC参数enable_track_record_subsql开启的情况下,可记录匿名块中的部分内部语句,仅会记录其中下发到DN执行的内部语句,未下发到DN执行的内部语句会被过滤掉。
    • 记录游标语句,当游标没有从缓存中读取数据,而触发语句下发到DN上执行的条件下,该游标语句会被记录,并且会进行语句、执行计划增强,但当游标从缓存中读取数据时,不进行记录;当游标语句在匿名块或者函数中使用且游标从DN上读取较多数据但不完全使用时,因当前架构限制,无法记录该游标在DN上的监控信息。对于With Hold游标,该语法执行逻辑特殊,会在事务提交阶段执行实际查询动作,当语句在该阶段执行报错时,作业的aborted状态无法反馈到TopSQL历史表中。
    • 重分布过程中的作业不统计。
    • JDBC执行的带占位符语句,通常会补齐参数内容,但当参数和原语句合起来长度超过64KB,则不记录参数,或者是轻量化语句直接下发到DN上执行,不记录参数。
    • 从8.1.3集群版本开始,query、perf级别TopSQL运行时监控功能已完全不影响查询性能,对当前会话的语句进行资源监控的GUC参数resource_track_cost默认值已修改为0,查询TopSQL实时监控视图时,默认会显示所有正在执行的语句。
    • 从8.1.3集群版本开始,对于存储过程中的子语句监控功能,如果在查询TopSQL实时监控视图的会话中,开启控制子语句记录归档功能的GUC参数enable_track_record_subsql,不论业务语句中是否开启子语句监控开关,查询TopSQL实时监控视图的结果都能看到执行语句的子语句运行信息。
    • 关于存储过程中子语句的监控功能即enable_track_record_subsql,8.1.3集群版本中建议不要全面开启,由于没有按时间过滤子语句的功能,全面开启可能会记录过多子语句,导致归档的监控表占用大量磁盘空间;8.1.3集群版本建议仅用于查询实时监控信息,或对个别存储过程业务做定位分析时,仅开启对应会话中的参数。8.2.1及以上集群版本新增GUC参数resource_track_subsql_duration(默认值为180秒),可以通过执行时间过滤需要归档的子语句,用户可以按需调整该值大小。
    • 由于规格限制,对于未下盘的主语句,TopSQL历史表中的记录会有延时,等待下次作业下发时才会显示在TopSQL历史表中。
    • 自8.2.1.200集群版本,新增operator_realtime级别TopSQL运行时监控,提供算子级实时监控的能力,开启此级别的监控可以查询语句的执行计划以及具体执行信息,查询TopSQL算子级实时监控视图时,默认会显示所有正在执行的语句。但是对于存储过程和游标场景,暂时不支持显示算子级实时监控信息。另由于查询所有语句的信息对于CN内存压力较大,为了不影响作业性能,为用户提供查询单个语句的函数pg_stat_get_wlm_realtime_operator_info(queryid),可以通过该函数查询指定语句的算子执行信息。该版本暂时不支持算子历史信息查询。
    • operator_realtime级别TopSQL运行时监控对于CN轻量化和存储过程的情况,暂时不支持。另由于算子执行速度较快的原因,对于算子信息的显示会有一定滞后性。
    • query级别的作业监控和operator的算子监控中的spill_size字段,由于统计维度不同,会有一定差异,query级别监控的语句实际下盘文件大小,算子监控的是具体算子在逻辑层IO读写的数据量。
    • 当GUC参数enable_stream_operator设置为off状态时,算子执行信息存在显示不准的情况。

前提条件

  • GUC参数enable_resource_track为on (默认为on)。
  • GUC参数resource_track_level为query、perf、operator_realtime或operator(默认为query)。
  • 监控作业的类型为:
  • Cgroups功能正常加载,可通过gs_cgroup -P查看控制组信息。
  • GUC参数enable_track_record_subsql控制是否记录存储过程、匿名块内部语句。

在上述条件中,enable_resource_track为系统级参数,用于设置是否开启资源监控功能。resource_track_level为session级参数,可以对某个session的资源监控级别进行灵活设置。这两个参数的设置方法如下表:

表2 设置资源监控信息统计级别

enable_resource_track

resource_track_level

query级别信息

算子级别信息

on(default)

none

不统计

不统计

query(default)

统计

不统计

perf

统计

不统计

operator

统计

统计

on(default)

operator_realtime

统计

统计实时算子监控

off

none/query/operator

不统计

不统计

操作步骤

  1. 通过视图gs_session_cpu_statistics查询实时CPU信息。

    1
    SELECT * FROM gs_session_cpu_statistics;
    

  2. 通过视图gs_session_memory_statistics查询实时memory信息。

    1
    SELECT * FROM gs_session_memory_statistics;
    

  3. 通过视图gs_wlm_session_statistics查询当前CN的实时资源。

    1
    SELECT * FROM gs_wlm_session_statistics;
    

  4. 通过视图pgxc_wlm_session_statistics查询所有CN的实时资源。

    1
    SELECT * FROM pgxc_wlm_session_statistics;
    

  5. 通过视图gs_wlm_operator_statistics查询当前CN作业算子执行实时资源信息。

    1
    SELECT * FROM gs_wlm_operator_statistics;
    

  6. 通过视图pgxc_wlm_operator_statistics查询所有CN作业算子执行实时资源信息。

    1
    SELECT * FROM pgxc_wlm_operator_statistics;
    

  7. 通过视图pg_session_wlmstat查询当前用户执行作业正在运行时的负载管理信息。

    1
    SELECT * FROM pg_session_wlmstat;
    

  8. 通过视图pgxc_wlm_workload_records(动态负载功能开启,即enable_dynamic_workload为on时该视图有效)查询当前用户在每个CN上作业执行时的状态信息。

    1
    SELECT * FROM pgxc_wlm_workload_records;
    

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容