计算
弹性云服务器 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-06-13 GMT+08:00

GS_INSTR_UNIQUE_SQL

Unique SQL定义

数据库将接收到的每个SQL的文本字符串,都进行解析并生成内部解析树,遍历解析树并忽略其中的常数值,以一定的算法计算出来一个整数值作为Unique SQL ID,用来唯一标识这一类SQL,Unique SQL ID相同的一类SQL就叫做Unique SQL。

示例

假如,用户先后输入SQL:

select * from t1 where id = 1;
select * from t1 where id = 2;

那么,这两条SQL的统计信息会汇聚到同一个Unique SQL上:

select * from t1 where id = ?;

GS_INSTR_UNIQUE_SQL视图

GS_INSTR_UNIQUE_SQL视图显示当前节点收集的Unique SQL的执行信息,主要包括以下内容:

  • Unique SQL ID以及归一化后的SQL文本字符串,归一化后的SQL文本如示例中所示。
  • 执行次数(成功执行的次数),响应时间(数据库内部的SQL执行时间,包括最大、最小和总时间)。
  • Cache/IO信息,包含block的物理读、逻辑读次数,仅统计执行成功的SQL在各DN节点上的相关信息。该统计值与查询执行当时所处理的数据量、所使用的内存、是否多次执行、内存管理策略、是否有其他并发查询等因素相关,反映整个查询执行过程中的buffer块物理读和逻辑读次数,不同时间执行可能统计值不同。
  • 行活动,包含SELECT语句的结果集返回行数、更新行、插入行、删除行、顺序扫描行、随机扫描行等信息。除结果集返回行数与该SELECT语句的结果集行数一致、且仅在CN上记录外,其他行活动信息均在DN上记录,且统计数值反应的是整个查询执行过程中的行活动,包括对相关系统表、元数据表、数据表等做必要的扫描和修改,与对应数据量以及相关参数设置相关,即统计数值将会大于等于对实际数据表的扫描和修改。
  • 时间分布,包含:DB_TIME/CPU_TIME/EXECUTION_TIME/PARSE_TIME/PLAN_TIME/REWRITE_TIME/PL_EXECUTION_TIME/PL_COMPILATION_TIME/NET_SEND_TIME/DATA_IO_TIME,相关定义见表1。该信息在CN和DN节点均有统计,视图查询时将汇总展示。
  • 软硬解析次数,包含软解析(缓存计划)、硬解析(生成计划)的次数,即如果本次执行的是之前缓存的计划,软解析次数+1,如果本次执行的计划是重新生成的,则硬解析次数+1。该次数在CN和DN节点上都会统计,视图查询时将汇总展示。

Unique SQL收集功能存在以下约束:

  • 只有执行成功的SQL才会显示其详细的统计信息,否则可能只记录query、node、user等信息。
  • 根据当前的Unique SQL ID生成算法,相同的SQL在不同节点执行可能生成不同的ID。
  • 如果开启Unique SQL收集功能,CN节点将对所有接受到的查询进行统计收集,包括工具和用户的查询等。
  • 若一条SQL语句内部包含执行多条SQL语句、类似存储过程执行等场景,仅会对最外层SQL生成一条Unique SQL,所有子SQL的统计信息都会汇总到该Unique SQL记录上。
  • Unique SQL的响应时间统计中不完全包含NET_SEND_TIME阶段的时间,所以EXECUTION_TIME和elapse_time等时间之间不存在大小比较关系。
  • 对于类似begin;...;commit;等形式的事务块,当前不支持统计子句的解析时间(parse_time)。

普通用户访问GS_INSTR_UNIQUE_SQL视图,只能看到该用户相关的Unique SQL信息,管理员用户可以看到当前节点所有的Unique SQL信息。CN和DN上均可查询GS_INSTR_UNIQUE_SQL视图,DN上显示的是本节点内的Unique SQL统计信息,CN上显示的是本节点Unique SQL完整统计信息,即该CN节点会收集其他CN和DN上对应该CN的Unique SQL的执行信息,进行汇总展示。通过查询GS_INSTR_UNIQUE_SQL视图,能够定位由于消耗不同资源导致的Top SQL,为集群性能调优和维护提供依据。

表1 GS_INSTR_UNIQUE_SQL字段

名称

类型

描述

node_name

name

接收SQL的CN节点名称

node_id

integer

节点ID,等同于pgxc_node表中node_id

user_name

name

用户名称

user_id

oid

用户ID

unique_sql_id

bigint

归一化的UNIQUE SQL ID

query

text

归一化的SQL文本,其最大长度等于GUC参数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

buffer的块访问次数,即物理读/IO

n_blocks_hit

bigint

buffer的块命中次数,即逻辑读/Cache

n_soft_parse

bigint

软解析次数(缓存计划)

n_hard_parse

bigint

硬解析次数(生成计划)

db_time

bigint

有效的DB执行时间,包含等待时间、网络发送时间等,若查询执行涉及到多线程,DB_TIME是多个线程的DB_TIME之和(单位:微秒)

cpu_time

bigint

CPU的执行时间,不包含sleep时间(单位:微秒)

execution_time

bigint

查询执行器内的SQL执行时间,DDL语句、以及某些不经过执行器执行的语句(例如Copy语句)不计数(单位:微秒)

parse_time

bigint

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

plan_time

bigint

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

rewrite_time

bigint

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

pl_execution_time

bigint

plpgsql过程化语言函数上的执行时间(单位:微秒)

pl_compilation_time

bigint

plpgsql过程化语言函数上的编译时间(单位:微秒)

net_send_time

bigint

网络时间,包含CN向客户端发送数据、DN向CN发送数据等时间(单位:微秒)

data_io_time

bigint

IO时间,文件IO耗时(单位:微秒)

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