计算
弹性云服务器 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
更新时间:2022-08-16 GMT+08:00

历史TopSQL

系统提供了资源监控历史视图用例查询历史TopSQL。资源监控历史视图记录了查询作业运行结束时的资源使用情况(包括内存、下盘、CPU时间、IO等)和运行状态信息(包括报错、终止、异常等)以及性能告警信息。但对于由于FATAL、PANIC错误导致查询异常结束时,状态信息列只显示aborted,无法记录详细异常信息。特别的,对于查询解析,优化阶段的状态信息则无法监控。

历史视图具体的对外接口如下表所示:

视图级别

节点范围

查询视图

query级别/perf级别

当前CN

历史(Database Manager接口)

GS_WLM_SESSION_HISTORY

历史(内部转储接口)

GS_WLM_SESSION_INFO

所有CN

历史(Database Manager接口)

PGXC_WLM_SESSION_HISTORY

历史(内部转储接口)

PGXC_WLM_SESSION_INFO

算子级别

当前CN

历史(Database Manager接口)

GS_WLM_OPERATOR_HISTORY

历史(内部转储接口)

GS_WLM_OPERAROR_INFO

所有CN

历史(Database Manager接口)

PGXC_WLM_OPERATOR_HISTORY

历史(内部转储接口)

PGXC_WLM_OPERATOR_INFO

  • 视图级别取决于资源监控的等级,即参数resource_track_level的配置。
  • perf和operator级别会影响GS_WLM_SESSION_STATISTICS/PGXC_WLM_SESSION_INFO中的query_plan和warning字段的取值,详细内容参见SQL自诊断
  • 对外接口通过不同的前缀(gs与pgxc)来区分单CN查询视图以及集群级别查询视图。普通用户仅支持登录到集群的某个CN查询以gs为前缀的视图。
  • 对于gs_wlm_session_info,gs_wlm_operator_info,pgxc_wlm_session_info以及pgxc_wlm_operator_info视图只支持在连接gaussdb数据库时查询。
  • 实例故障时,历史TopSQL视图有可能记录不全。
  • 在某些异常的情况下,历史TopSQL中的状态信息列可能会显示为unknown,其记录的监控信息会导致不准确。
  • 历史TopSQL能够记录的SQL语句的规格与实时TopSQL能够记录的SQL语句的规格一致。请参考实时TopSQL中能够记录的SQL语句的规格

前提条件

  • GUC参数enable_resource_track为on (默认为on)。
  • GUC参数resource_track_level为query、perf或operator(默认为query)。设置方法详见表2
  • GUC参数enable_resource_record为on(默认为off)。
  • GUC参数resource_track_duration小于作业执行时间(默认为60s)。
  • 监控作业类型为:
  • Cgroups功能正常加载,可通过gs_cgroup -P查看控制组信息。
  • 该功能会引起存储空间膨胀及轻微性能影响,不建议生成系统默认使用。

操作步骤

  1. 通过视图gs_wlm_session_history查询当前CN最近执行作业结束后的负载记录。

    1
    SELECT * FROM gs_wlm_session_history;
    

  2. 通过视图pgxc_wlm_session_history查询所有CN最近执行作业结束后的负载记录。

    1
     SELECT * FROM pgxc_wlm_session_history;
    

  3. 通过数据表gs_wlm_session_info查询当前CN作业执行结束后的负载记录。要查到历史记录,必须保证enable_resource_record为on。

    1
    SELECT * FROM gs_wlm_session_info;
    
    • 消耗内存最多的10个Query(可指定查询时间段)
    1
    SELECT * FROM gs_wlm_session_info order by max_peak_memory desc limit 10; 
    
    1
    SELECT * FROM gs_wlm_session_info WHERE start_time >= '2022-05-15 21:00:00' and finish_time <='2022-05-15 23:30:00'order by max_peak_memory desc limit 10; 
    
    • 消耗CPU最多的10个Query(可指定查询时间段)
    1
    SELECT * FROM gs_wlm_session_info order by total_cpu_time desc limit 10;
    
    1
    SELECT * FROM gs_wlm_session_info WHERE start_time >= '2022-05-15 21:00:00' and finish_time <='2022-05-15 23:30:00'order by total_cpu_time desc limit 10;
    

  4. 通过视图pgxc_wlm_session_info查询所有CN的作业执行结束后的负载记录。要查到历史记录,必须保证enable_resource_record为on。

    1
    SELECT * FROM pgxc_wlm_session_info;
    
    • 查询所有CN消耗时间最多的10个query(可指定查询时间段)
    1
    SELECT * FROM pgxc_wlm_session_info order by duration desc limit 10;
    
    1
    SELECT * FROM pgxc_wlm_session_info WHERE start_time >= '2022-05-15 21:00:00' and finish_time <='2022-05-15 23:30:00'order by nodename,max_peak_memory desc limit 10;
    

  5. 通过函数pgxc_get_wlm_session_info_bytime对视图pgxc_wlm_session_info进行筛选查询,要查到历史记录,必须保证enable_resource_record为on。在统计数据量很大的场景中,建议使用该函数进行查询。

    GaussDB(DWS)集群默认使用时区为UTC时间,与系统时间存在8h时差,请确保数据库时间与系统时间一致后进行以下查询。

    • 查询所有CN上开始时间介于“2019-09-10 15:30:00”和“2019-09-10 15:35:00”之间的query,每个CN最多返回10条记录
    1
    SELECT * FROM pgxc_get_wlm_session_info_bytime('start_time', '2019-09-10 15:30:00', '2019-09-10 15:35:00', 10);
    
    • 查询所有CN上结束时间介于“2019-09-10 15:30:00”和“2019-09-10 15:35:00”之间的query,每个CN最多返回10条记录
    1
    SELECT * FROM pgxc_get_wlm_session_info_bytime('finish_time', '2019-09-10 15:30:00', '2019-09-10 15:35:00', 10);
    

  6. 通过视图gs_wlm_operator_history查询当前CN作业算子最近执行资源信息。要查到记录,必须保证resource_track_level为operator。

    1
    SELECT * FROM gs_wlm_operator_history;
    

  7. 通过视图pgxc_wlm_operator_history查询所有CN作业算子最近执行资源信息。要查到记录,必须保证resource_track_level为operator。

    1
    SELECT * FROM pgxc_wlm_operator_history;
    

  8. 通过数据表gs_wlm_operator_info查询当前CN作业算子历史执行资源信息。要查到记录,必须保证resource_track_level为operator和enable_resource_record为on。

    1
    SELECT * FROM gs_wlm_operator_info;
    

  9. 通过视图pgxc_wlm_operator_info查询所有CN作业算子历史执行资源信息。要查到记录,必须保证resource_track_level为operator和enable_resource_record为on。

    1
    SELECT * FROM pgxc_wlm_operator_info;
    

  • 对于上述的视图信息,由于预设内存的限制,内存中能够保留的数据记录数量是有限的。实时的查询在结束后会导入到历史相关的视图中,历史的视图信息当其在内存hash表中记录的时间超过3分钟时进行自动清理。关于记录上限,对于query级别视图,当新的需要记录的查询超过内存约束记录数上限时,则当前查询无法记录,下条查询重新进行规则判断;在每个CN上,记query级别实时查询视图在内存(默认5MB)中可记录的最大数为max_session_realt_num(当前系统值为12850),历史视图在内存(默认100MB)中可记录的最大数为max_session_hist_num(当前系统值为137970);业务系统单条查询的平均执行时间为run_time(s)以上,则在每个CN上,实时视图允许客户执行的最大并发数:num_realt_active = max_session_realt_num;历史视图允许客户执行的最大并发数:num_hist_active = max_session_hist_num/(180/run_time)。
  • 对于算子级别视图,当需要记录的查询的plan_node数量加上当前内存中已有的记录数量超过内存约束记录数上限时,则当前查询的所有算子节点不记录,下条查询重新按照算子规则判定。在每个CN上,记算子级别视图在内存中可记录的最大实时和历史记录数分别为max_oper_realt_num(当前系统值为56987),max_oper_hist_num(113975);记当前用户业务系统的平均每个查询的节点数为num_plan_node,则在每个CN上,实时视图允许客户执行的最大并发数: num_realt_active = max_oper_realt_num/num_plan_node;历史视图允许客户执行的最大并发数:num_hist_active = max_oper_hist_num/(180/run_time)/num_plan_node。
  • 如果并发过高,避免需要记录的查询数量超过query级别视图和算子级别视图的值,可以通过参数session_statistics_memory修改实时查询视图的内存,通过参数session_history_memory修改历史查询视图的内存,内存增大和查询数量成正比。

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