网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
云手机服务器 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器(旧版)
VR云渲游平台 CVR
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
企业路由器 ER
企业交换机 ESW
全球加速 GA
企业连接 EC
云原生应用网络 ANC
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘平台 IEF
CloudPond云服务
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
威胁检测服务 MTD
态势感知 SA
认证测试中心 CTC
边缘安全 EdgeSec
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
湖仓构建 LakeFormation
智能数据洞察 DataArts Insight
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
API网关 APIG
分布式缓存服务 DCS
多活高可用服务 MAS
事件网格 EG
开天aPaaS
应用平台 AppStage
开天企业工作台 MSSE
开天集成工作台 MSSI
API中心 API Hub
云消息服务 KooMessage
交换数据空间 EDS
云地图服务 KooMap
云手机服务 KooPhone
组织成员账号 OrgID
云空间服务 KooDrive
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
配置审计 Config
应用身份管理服务 OneAccess
资源访问管理 RAM
组织 Organizations
资源编排服务 RFS
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
区块链
区块链服务 BCS
数字资产链 DAC
华为云区块链引擎服务 HBS
解决方案
高性能计算 HPC
SAP
混合云灾备
开天工业工作台 MIW
Haydn解决方案工厂
数字化诊断治理专家服务
价格
成本优化最佳实践
专属云商业逻辑
云生态
云商店
合作伙伴中心
华为云开发者学堂
华为云慧通差旅
其他
管理控制台
消息中心
产品价格详情
系统权限
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
云服务信任体系能力说明
开发与运维
软件开发生产线 CodeArts
需求管理 CodeArts Req
流水线 CodeArts Pipeline
代码检查 CodeArts Check
编译构建 CodeArts Build
部署 CodeArts Deploy
测试计划 CodeArts TestPlan
制品仓库 CodeArts Artifact
移动应用测试 MobileAPPTest
CodeArts IDE Online
开源镜像站 Mirrors
性能测试 CodeArts PerfTest
应用管理与运维平台 ServiceStage
云应用引擎 CAE
开源治理服务 CodeArts Governance
华为云Astro轻应用
CodeArts IDE
Astro工作流 AstroFlow
代码托管 CodeArts Repo
漏洞管理服务 CodeArts Inspector
联接 CodeArtsLink
软件建模 CodeArts Modeling
Astro企业应用 AstroPro
CodeArts 盘古助手
华为云Astro大屏应用
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
云存储网关 CSG
专属分布式存储服务 DSS
数据工坊 DWR
地图数据 MapDS
键值存储服务 KVS
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
云原生服务中心 OSC
应用服务网格 ASM
华为云UCS
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB
云数据库 GeminiDB
数据管理服务 DAS
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
语音交互服务 SIS
人证核身服务 IVS
视频智能分析服务 VIAS
城市智能体
自动驾驶云服务 Octopus
盘古大模型 PanguLargeModels
IoT物联网
设备接入 IoTDA
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
企业应用
域名注册服务 Domains
云解析服务 DNS
企业门户 EWP
ICP备案
商标注册
华为云WeLink
华为云会议 Meeting
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMA Exchange
API全生命周期管理 ROMA API
政企自服务管理 ESM
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
数字内容生产线 MetaStudio
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
专属云
专属计算集群 DCC
开发者工具
SDK开发指南
API签名指南
DevStar
华为云命令行工具服务 KooCLI
Huawei Cloud Toolkit
CodeArts API
云化转型
云架构中心
云采用框架
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
我的凭证
华为云公共事业服务云平台
工业软件
工业数字模型驱动引擎
硬件开发工具链平台云服务
工业数据转换引擎云服务
更新时间:2024-12-30 GMT+08:00
分享

其它函数

pgxc_pool_check()

描述:检查连接池中缓存的连接数据是否与pgxc_node一致。8.3.0及以上集群版本中该参数已废弃。

返回值类型:boolean

pgxc_pool_reload()

描述:更新连接池中缓存的连接信息。

返回值类型:boolean

pgxc_lock_for_backup()

描述:备份前给集群加锁,备份是为了在新增节点上执行恢复操作。

返回值类型:boolean

pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前,用来给集群加锁的。当给集群加锁后,不允许有改变系统结构的操作。该函数不影响DML语句。

pg_pool_validate(clear boolean, co_node_name cstring)

描述:清理CN上无效的后台线程(这些后台线程持有无效的pooler连接,这里无效的pooler连接指的是连接到当前DN备实例的连接)。

返回值类型:record

pg_nodes_memory()

描述:查看所有节点的内存占用。

返回值类型:record

table_skewness(text)

描述:查看表数据在所有节点的占比。

参数:表示待查询表的表名,为text类型。

返回值类型:record

table_skewness(table_name text, column_name text[, row_num text])

描述:查看表里某列数据,按hash分布规则,在各节点的占比情况。结果以数据节点上的数据量排序。

参数:table_name为表名;column_name为列名;row_num表示查看当前列所有数据,可缺省,默认为0。非0时,表示抽取指定条数的数据查看占比情况(每次采样结果可能不相同,只保证采集row_num条数据进行占比计算)。

返回值类型:record

示例:

根据tx表中的a列,按hash分布,则在1,2,0编号的DN上分布的数据量分别为7条,2条,1条。

1
2
3
4
5
6
7
SELECT * FROM table_skewness('tx','a');
 seqnum | num |  ratio
--------+-----+----------
 1      | 7   | 70.000%
 2      | 2   | 20.000%
 0      | 1   | 10.000%
(3 row)

table_data_skewness(data_row record, locatorType "char")

描述:计算指定表中列拼接出的record,对应的桶分布索引。

参数:data_row表示指定表中列拼接出的record,locatorType表示分布规则,当前建议指定'H',按hash分布计算。

返回值类型:smallint

示例:

计算tx表中a列拼接的record,按照hash分布规则对应的桶分布索引。

1
2
3
4
5
6
7
8
9
select a, table_data_skewness(row(a), 'H') from tx;
 a | table_data_skewness 
---+---------------------
 3 |                   0
 6 |                   2
 7 |                   2
 4 |                   1
 5 |                   1
(5 rows)

table_distribution(schemaname text, tablename text)

描述:查看指定表在各个节点上占用的存储空间。

参数:表示待查询表的模式名和表名,均为text类型。

返回值类型:record

  • 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。
  • table_distribution性能比table_skewness更优,尤其是在大集群大数据量场景下,请优先考虑使用table_distribution函数。
  • 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。

table_distribution(regclass)

描述:查看指定表在各个节点上占用的存储空间。

参数:表示待查询表的表名或OID,表名可以有模式名限定。为regclass类型。

返回值类型:record

  • 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。
  • table_distribution性能比table_skewness更优,尤其是在大集群大数据量场景下,请优先考虑使用table_distribution函数。
  • 当使用table_distribution并希望直观的看到空间占比时,可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。

table_distribution()

描述:查看当前库中所有表在各节点的存储空间分布情况。

返回值类型:record

  • 使用本函数涉及全库表信息查询,需要具备管理员权限或预置角色gs_role_read_all_stats权限。
  • 当前基于table_distribution()函数,GaussDB(DWS)提供视图PGXC_GET_TABLE_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。

gs_table_distribution(schemaname text, tablename text)

描述:快速查看指定表在各个节点上占用的存储空间。

返回值类型:record

表1 gs_table_distribution(schemaname text, tablename text)函数返回字段

名称

类型

描述

schemaname

name

模式名称。

tablename

name

表名。

relkind

character

类型。

  • i:索引
  • r:表

relpersistence

character

类型。

  • t:本地临时表
  • g:全局临时表
  • u:unlogged表
  • p:普通表

nodename

name

节点名称。

dnsize

bigint

表在该节点上的存储空间大小,单位:字节。

sessionid

bigint

对于全局临时表显示每个会话的session id。

  • 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。
  • 该函数基于PG_RELFILENODE_SIZE系统表上的物理文件存储空间记录,需确保GUC参数use_workload_manager和enable_perm_space必须开启。
  • 性能上,单表查询时,gs_table_distribution函数低于table_distribution函数;在全库表查询时,gs_table_distribution函数大幅度优于table_distribution函数;在大集群大数据量场景下,如果进行全库表查询,建议优先使用gs_table_distribution函数。
  • 全局临时表可以显示每个会话在存储空间分布情况。通过sessionid列区分不同会话。

gs_table_distribution()

描述:快速查看当前库中所有表在各节点的存储空间分布情况。

返回值类型:record

表2 gs_table_distribution()函数返回字段

名称

类型

描述

schemaname

name

模式名称。

tablename

name

表名。

relkind

character

类型,i: 索引,r: 表。

relpersistence

character

类型。

  • t:本地临时表
  • g:全局临时表
  • u:unlogged表
  • p:普通表

nodename

name

节点名称。

dnsize

bigint

表在该节点上的存储空间大小,单位:字节。

sessionid

bigint

对于全局临时表显示每个会话的session id。

  • 使用本函数查询指定表存储分布信息,需要具备指定表的SELECT权限。
  • 该函数基于PG_RELFILENODE_SIZE系统表上的物理文件存储空间记录,需确保GUC参数use_workload_manager和enable_perm_space必须开启。
  • 性能上,单表查询时,gs_table_distribution函数低于table_distribution函数;在全库表查询时,gs_table_distribution函数大幅度优于table_distribution函数;在大集群大数据量场景下,如果进行全库表查询,建议优先使用gs_table_distribution函数。
  • 基于gs_table_distribution()函数,GaussDB(DWS)自8.2.1集群版本提供了视图PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS进行数据倾斜查询,建议在数据库中表数量(小于10000)较少的场景直接使用。

check_foreign_key_constraint(schema.table)

描述:检测外键表中的数据是否满足外键约束。该参数仅9.1.0.200及以上集群版本支持。

返回值类型:text

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
set info_constraint_options = 'foreign_key';

CREATE TABLE ptt1 (a int,b int,e varchar(50),f varchar(50),PRIMARY KEY (a,b)) DISTRIBUTE BY HASH(a,b);
CREATE TABLE tt2 (a int , b int, c int, d int) DISTRIBUTE BY HASH(a,b);

select check_foreign_key_constraint('table_constraints.tt2');
check_foreign_key_constraint
-----------------------------------------
tt2 table has no foreign key constraint

ALTER TABLE tt2 ADD CONSTRAINT fk_tt1_a FOREIGN KEY (a,b) REFERENCES ptt1(a,b);

select check_foreign_key_constraint('table_constraints.tt2');
check_foreign_key_constraint
-------------------------------------------
tt2 satisfied all Foreign key constraints

plan_seed()

描述:获取前一次查询语句的seed值(内部使用)。

返回值类型:integer

pg_stat_get_env()

描述:提供获取当前节点的环境变量信息。

返回值类型:record

pg_stat_get_thread()

描述:提供当前节点下所有线程的状态信息。

返回值类型:record

pgxc_get_os_threads()

描述:提供当前集群中所有正常节点下的线程状态信息。

返回值类型:record

pg_stat_get_sql_count()

描述:提供当前节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数和响应时间的统计结果以及DDL、DML、DCL语句的计数结果。

返回值类型:record

pgxc_get_sql_count()

描述:提供当前集群所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数和响应时间的统计结果以及DDL、DML、DCL语句的计数结果。

返回值类型:record

pgxc_get_workload_sql_count()

描述:提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的计数统计结果以及DDL、DML、DCL类型语句的计数统计结果。

返回值类型:record

pgxc_get_workload_sql_elapse_time()

描述:提供当前集群所有CN上所有Workload控制组内执行的SELECT/UPDATE/INSERT/DELETE语句的响应时间统计结果。

返回值类型:record

get_instr_unique_sql()

描述:提供当前节点中收集的Unique SQL的信息。如果是CN节点,将返回该CN上收集的Unique SQL的完整信息,即会收集其他CN和DN上对应Unique SQL的信息并进行汇总展示;如果是DN节点,将返回本DN节点上的Unique SQL信息。详见视图GS_INSTR_UNIQUE_SQL。

返回值类型:record

reset_instr_unique_sql(cstring, cstring, INT8)

描述:清理已收集的Unique SQL信息。输入参数含义如下:

  • GLOBAL/LOCAL:清理范围为所有节点或当前节点。
  • ALL/BY_USERID/BY_CNID/BY_GUC:ALL表示清理所有,BY_USERID/BY_CNID表示按照USERID或CNID进行清理,BY_GUC表示清理操作是由GUC参数instr_unique_sql_count设置值变小引起的。
  • 第三个参数值对应第二个参数设置,ALL/BY_GUC的情况下该值无意义。

返回值类型:bool

pgxc_get_instr_unique_sql()

描述:提供集群中所有CN上收集的Unique SQL的完整信息。该函数只能在CN上执行。

返回值类型:record

get_instr_unique_sql_remote_cns()

描述:提供集群中除正在执行此函数的CN之外的所有CN上收集的Unique SQL的完整信息。该函数只能在CN上执行。

返回值类型:record

pgxc_get_node_env()

描述:提供获取集群中所有节点的环境变量信息。

返回值类型:record

gs_switch_relfilenode()

描述:交换两个表或分区的元信息(重分布工具内部使用,用户直接使用会有错误信息提示)。

返回值类型:integer

copy_error_log_create()

描述:创建COPY FROM容错机制所需要的错误表(public.pgxc_copy_error_log)。

返回值类型:boolean

  • 此函数会尝试创建public.pgxc_copy_error_log表,表的详细信息请参见表3
  • 在relname列上创建B-tree索引,并REVOKE ALL on public.pgxc_copy_error_log FROM public对错误表进行权限控制(与COPY语句权限一致)。
  • 由于尝试创建的public.pgxc_copy_error_log定义是一张行存表,因此集群上必须支持行存表的创建才能够正常运行此函数,并使用后续的COPY容错功能。需要特别注意的是,enable_hadoop_env这个GUC参数开启后会禁止在集群内创建行存表(GaussDB(DWS)默认为off)。
  • 此函数自身权限为Sysadmin及以上(与错误表、COPY权限一致)。
  • 若创建前public.pgxc_copy_error_log表已存在或者copy_error_log_relname_idx索引已存在,则此函数会报错回滚。
表3 错误表public.pgxc_copy_error_log信息

列名称

类型

描述

relname

varchar

表名称。以模式名.表名形式显示。

begintime

timestamp with time zone

出现数据格式错误的时间。

filename

varchar

出现数据格式错误的数据源文件名。

rownum

bigint

在数据源文件中,出现数据格式错误的行号。

rawrecord

text

在数据源文件中,出现数据格式错误的原始记录。为了防止字段长度过大,限制字段的长度不超过1024 byte。

detail

text

详细错误信息。

columnname

varchar

在数据源文件中,出现数据格式错误的字段名称。仅8.2.1.100及以上版本支持。

errcode

varchar

出错信息对应的错误码,使用sqlstate错误码。仅8.2.1.100及以上版本支持。

queryid

bigint

执行copy的sql语句id,用于唯一标识一条sql语句。仅8.2.1.100及以上版本支持。

pv_compute_pool_workload()

描述:提供云上加速集群当前负载信息。

返回值类型:record

pg_stat_get_status(tid, num_node_display)

描述:查询当前实例中工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况,其返回结果的详细含义参见PG_THREAD_WAIT_STATUS视图。输入参数含义如下:

  • tid:表示线程ID,bigint类型。如果为NULL,则返回所有工作线程和辅助线程的等待情况;否则只返回指定ID线程的等待情况。
  • num_node_display:integer类型。对于等待状态为“wait node”的记录,指定其wait_status列中显示的被等待节点的最大数量。
    • 如果为空或者小于等于0,则只显示一个被等待节点。
    • 如果大于20,则最多只显示20个节点。
    • 如果大于0且小于等于20,则显示数量为num_node_display和实际被等待节点数量的最小者。例如查询“SELECT * from pg_stat_get_status(NULL, 10)”,如果实际被等待节点数量大于10,则只随机显示其中10个节点名称,如果实际被等待节点数量小于等于10,则显示全部被等待节点名称。当实际被等待节点数量大于显示数量时,被显示的节点名称为随机挑选。

返回值类型:record

pgxc_get_thread_wait_status(num_node_display)

描述:查询集群各个节点上所有SQL语句产生的线程之间的调用层次关系,以及各个线程的阻塞等待状态。其返回结果的详细含义参见PGXC_THREAD_WAIT_STATUS视图。输入参数num_node_display的类型和含义与上述函数pg_stat_get_status相同。

返回值类型:record

pgxc_os_run_info()

描述:查询集群中各节点上操作系统运行的状态信息。函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_OS_RUN_INFO”章节。

返回值类型:record

get_instr_wait_event()

描述:查询当前实例上各类等待状态和事件的统计信息。函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_WAIT_EVENTS”。如果GUC参数enable_track_wait_event为off,则返回0行。

返回值类型:record

pgxc_wait_events()

描述:查询集群中各节点上各类等待状态和事件的统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PGXC_WAIT_EVENTS”视图。如果GUC参数enable_track_wait_event为off,则返回0行。

返回值类型:record

pgxc_stat_bgwriter()

描述:查询集群中各节点上后端写进程活动的统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_STAT_BGWRITER”视图。

返回值类型:record

pgxc_stat_replication()

描述:查询集群中各节点上日志同步的状态信息,如发起端发送日志位置,收端接收日志位置等,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_STAT_REPLICATION”视图。

返回值类型:record

pgxc_replication_slots()

描述:查询集群中各DN上复制的状态信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_REPLICATION_SLOTS”视图。

返回值类型:record

pgxc_settings()

描述:查询集群中各节点上运行时参数的相关信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PG_SETTINGS”视图。

返回值类型:record

pgxc_instance_time()

描述:查询集群中各节点的运行时间统计信息及各执行阶段所消耗时间,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_INSTANCE_TIME”视图。

返回值类型:record

pg_stat_get_redo_stat()

描述:查询当前节点上的XLOG重做统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_REDO_STAT”视图。

返回值类型:record

pgxc_redo_stat()

描述:查询集群中各节点上的XLOG重做统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>PV_REDO_STAT”视图。

返回值类型:record

get_local_rel_iostat()

描述:查询当前实例上磁盘读写的统计信息。函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_REL_IOSTAT”视图。

返回值类型:record

pgxc_rel_iostat()

描述:查询集群中各节点上磁盘读写的统计信息,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_REL_IOSTAT”视图。

返回值类型:record

get_node_stat_reset_time()

描述:返回当前实例统计信息被重置的时间。

返回值类型:timestamptz

pgxc_node_stat_reset_time()

描述:查询集群中各节点统计信息被重置的时间,函数返回结果信息详见《开发指南》中“系统表和系统视图>系统视图>GS_NODE_STAT_RESET_TIME”视图。

返回值类型:record

实例正常运行过程中,内存中的各类统计数值会逐渐累加,以下情况会导致内存中的统计数值被重置为0:
  • 实例重启或集群发生了切换;
  • 数据库Database被删除(drop);
  • 用户执行了重置操作,如执行pgstat_recv_resetcounter函数会将数据库中的统计计数器清零,执行reset_instr_unique_sql函数会将Unique SQL数据清零。

如果发生了以上事件,GaussDB(DWS)会记录统计信息被重置的时间,可通过get_node_stat_reset_time函数查询。

pgxc_parallel_query(text, text)

描述:在指定类型的数据实例上执行指定的SQL查询语句,并把查询语句的结果返回给当前CN。该函数8.1.2及以上版本支持。

函数有两个参数:

第一个参数:SQL语句在哪些实例上执行。当前支持的有效入参是 'dn', 'datanode','cn', 'coordinator', 'all', 其它值会导致函数执行报错。其中 'dn', 'datanode'表示在所有DN上执行,'cn', 'coordinator'表示在所有CN上执行, all表示在所有的CN和所有的DN上执行。

第二个参数:需要发往远程节点执行的SQL语句,函数内部会对SQL语句中查询的对象进行校验,不支持用户表、分布式表和自定义的多结果集函数。

返回值类型:record

  • 该函数功能仅为便于开发人员高效的收集集群内实例执行信息或者状态的视图,不建议用户直接使用。
  • 该函数为多结果集函数,返回的数据类型为record,所以需要在函数调用后面增加AS语句显示的指出输出的列名和数据类型,如下所示:
    SELECT * FROM pgxc_parallel_query('all', 'select node_name, db_name, thread_name, query_id, tid, lwtid, ptid, tlevel, smpid, wait_status, wait_event from pg_thread_wait_status') AS (node_name text, db_name text, thread_name text, query_id bigint, tid bigint, lwtid integer , ptid integer, tlevel integer , smpid integer, wait_status text, wait_event text);
  • 函数第二个参数指定的SQL语句输出结果的数据类型必须跟AS后面指明的数据类型一致,否则执行时可能会因为类型不匹配而报错。
  • 函数第二个参数指定的SQL语句中不能触发跨节点的查询动作,否则会触发执行报错。
  • 函数第二个参数指定的SQL语句只能是SELECT/UPDATE/DELETE/INSERT语句中的一种,且
    • 不支持语句中有returning语句。
    • 调用函数用户需具有SQL语句中对象相应的操作权限。
    • 如果是INSERT语句,不支持INSERT OVERWRITE、UPSERT、和INSERT INTO。
    • 对于UPDATE/DELETE/INSERT语句,只允许初始化用户在就地升级模式下或者管理员用户在重分布模式下执行;要求语句在每个实例上修改的记录数相同,否则执行会报错;函数会输出一条一列bigint类型的数值,此数值表示语句在每个实例上操作的记录数。
      SELECT * FROM pgxc_parallel_query('cn', 'UPDATE pg_partition SET relpages = 0') AS (updated bigint);

create_wdr_snapshot()

描述:创建性能数据快照。

返回值类型:text

  • 该函数只有数据库管理员SYSADMIN才可以执行,非管理员执行会提示无权限。
  • 该函数只能在CN上执行,在DN上执行会返回:“WDR snapshot can only be created on coordinator.”。
  • 执行该函数前需确认enable_wdr_snapshot参数处于开启状态。如果enable_wdr_snapshot为off,执行该函数会返回:“WDR snapshot request can't be executed, because GUC parameter 'enable_wdr_snapshot' is off.”。
  • 如果执行该函数时,快照线程由于节点重启等原因尚未启动,会提示错误:“WDR snapshot request can not be accepted, please retry later.”。
  • 如果执行该函数失败,会提示:“Cannot respond to WDR snapshot request.”。
  • 如果执行成功,会返回:“WDR snapshot request has been submitted.”。该提示表明创建快照请求已发送至后台快照线程,但不代表创建快照成功。

kill_snapshot(scope cstring)

描述:中止后台快照线程。该函数向后台快照线程发送中止信号并等待线程结束。

输入参数scope:表示操作范围。该参数取值范围为local和global。

  • local表示中止当前CN上的快照线程。
  • global表示不仅会中止当前CN上的快照线程,还会向集群中所有其他CN发送中止快照线程的请求,即中止集群中所有CN上的快照线程。
  • 如果输入其他值,则报错“Scope is invalid, use "local" or "global".”。
  • 输入参数可为空,表示默认取值为local。

返回值类型:无

  • 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。
  • 该函数只能在CN上执行,在DN上执行会提示:“kill_snapshot can only be executed on coordinator.”;
  • 执行该函数会向后台快照线程发送中止信号并等待其结束。如果100s内快照线程仍未中止则会报错:“Kill snapshot thread failed”;

generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring)

描述:创建负荷分析报告。

输入参数含义如下:

  • begin_snap_id,end_snap_id:生成报告的起止快照ID,bigint型,要求begin_snap_id < end_snap_id,并且起止快照的时间没有交集。判断快照时间是否有交集可通过查询dbms_om.snapshot表格select s1.end_ts < s2.start_ts from (select * from dbms_om.snapshot where snapshot_id=end_snap_id) as s2;,如果返回true则没有交集,反之有交集。
  • report_type:报告类型,cstring型,包括“summary”,“detail”,“all”三种类型。
  • report_scope:报告范围,cstring型,包括“cluster”和“node”两种。
  • node_name:节点名称,cstring型,如果report_scope="node",该参数必须是pg_catalog. pgxc_node表格中node_name字段里的CN或DN节点名称。
返回值类型:text
  • 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。
  • 该函数只能在CN上执行,在DN上执行会提示错误:“WDR report can only be created on coordinator.”。
  • 如果生成报告成功,会返回:“Report %s has been generated”。
  • 生成报告的两个快照期间不能发生统计信息重置事件,否则会提示错误:“Instance reset time is different”。引起统计信息重置的事件参见pgxc_node_stat_reset_time函数。

wdr_xdb_query(db_name text, snapshot_id bigint, view_name text)

描述:查询指定数据库下的指定视图。有的视图在不同数据库中查询结果不同,例如global_table_stat视图用于查询表格的统计信息,由于不同数据库下表格不同,在不同数据库中查询该视图得到的结果也不同。wdr_xdb_query函数可以在当前连接中访问db_name指定的数据库,并在该数据库中查询view_name指定的视图。输入参数含义如下:

  • db_name:指定的数据库名称,text型。
  • snapshot_id:快照ID,bigint型,参见“性能视图快照”。
  • view_name:指定视图名称,text型。视图名称必须在如下白名单中:
    • global_table_stat
    • global_table_change_stat
    • global_column_table_io_stat
    • global_row_table_io_stat

      返回值类型:record,其第一列为snapshot_id bigint,第二列为db_name text,其他列的名称、类型和顺序与view_name指定的视图相同。

      示例:

      1
      2
      select snapshot_id, db_name, schemaname, relname, distribute_mode, seq_scan ,seq_tuple_read ,index_scan ,index_tuple_read ,tuple_inserted
      ,tuple_updated ,tuple_deleted ,tuple_hot_updated ,live_tuples ,dead_tuples from wdr_xdb_query('postgres'::text, 1, 'global_table_stat'::text) as i(snapshot_id bigint, db_name text, schemaname name, relname name, distribute_mode char, seq_scan bigint, seq_tuple_read bigint, index_scan bigint, index_tuple_read bigint, tuple_inserted bigint, tuple_updated bigint, tuplee_deleted bigint, tuple_hot_updated bigint, live_tuples bigint, dead_tuples bigint);
      
      • 该函数仅8.1.2及以上版本支持。
      • 该函数只有数据库管理员SYSADMIN才有权执行,非管理员执行会提示无权限。
      • 该函数只能查询白名单中的视图,如果查询其他视图,会报错:“Input view name is invalid.”。

vac_fileclear_relation(oid)

描述:用于强制清理指定列存表中被VACUUM重写的文件,完成空间回收。

参数:列存表oid。

返回值类型:integer

  • 使用本函数前需要设置参数colvacuum_threshold_scale_factor,并确保VACUUM对指定列存表的文件完成重写后,才会清理文件并回收空间。
  • 本函数将对指定的列存表施加排他锁。

vac_fileclear_all_relation()

描述:用于强制清理所有列存表中被VACUUM重写的文件,完成空间回收。

返回值类型:record

get_col_file_info(table_name)

描述:查询指定列存表的空CU文件数和总CU文件数,该函数仅8.2.0及以上集群版本支持。

参数:列存表名。

返回值类型:int

返回值字段:

  • total_file_num int:总CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为总文件数。
  • empty_file_num int:空CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为空文件数。

示例:

1
2
3
4
5
call get_col_file_info('t4');
 total_file_num | empty_file_num
----------------+----------------
             10 |              7
(1 row)

get_all_col_file_info()

描述:查询所有列存表的空CU文件数和总CU文件数,该函数仅8.2.0及以上集群版本支持。

返回值类型:record

返回值字段:

  • space_name text:列存表所属schema
  • table_name text:列存表名
  • total_file_num int:总CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为总文件数。
  • empty_file_num int:空CU文件数,范围为-1~INT_MAX,返回-1时表示表类型不支持等原因的失败,0~INT_MAX为空文件数。

示例:

1
2
3
4
5
6
7
call get_all_col_file_info();
 space_name | table_name | total_file_num | empty_file_num
------------+------------+----------------+----------------
 public     | t4         |             10 |              7
 public     | t2         |              1 |              1
 public     | t1         |              3 |              0
(3 rows)

pg_get_bucket_epoch(relid)

描述:查询v3表在当前节点上的epoch值。对于分区表,需要输入父表oid,将打印所有子分区的epoch值。该函数只支持在写VW上执行。该函数仅9.1.0.200及以上集群版本支持。

返回值类型:record

返回值字段:

  • relfilenode oid:列存非分区表的relfilenode。对于分区表,此值为0。
  • partfilenode oid:列存分区表的relfilenode。对于非分区表,此值为0。
  • epoch xid:当前节点上该表对应的epoch值。

示例:

1
2
3
4
5
select * from pg_get_bucket_epoch(2147483732);
 relfilenode | partfilenode |  epoch
-------------+--------------+--------
  2137383742 |            0 | 1000001
(1 row)

pg_get_bucket_epoch(tablespaceid, databaseid, relfilenode)

描述:查询v3表在当前节点上的epoch值。输入v3表所在的表空间oid,数据库oid和表对应的relfilenode。该函数在写VW或读VW上均可执行。该函数仅9.1.0.200及以上集群版本支持。

返回值类型:xid

返回值字段:

epoch xid:当前节点上该表对应的epoch值。

示例:

1
2
3
4
5
select * from pg_get_bucket_epoch(2147483729, 16792, 2147483732);
 epoch
-------
1000001
(1 row)

pgxc_get_bucket_epoch(tablespaceid, databaseid, relfilenode)

描述:查询v3表在所有dn节点上的epoch值。输入v3表所在的表空间oid,数据库oid和表对应的relfilenode。该函数在写VW或读VW上均可执行。该函数仅9.1.0.200及以上集群版本支持。

返回值类型:record

返回值字段:

  • nodename text:节点名称。
  • epoch xid:当前节点上该表对应的epoch值。

示例:

1
2
3
4
5
6
7
select * from pgxc_get_bucket_epoch(2147483729, 16792, 2147483732);
  nodename |  epoch
-----------+---------
 datanode3 | 1000001
 datanode1 |       0
 datanode2 |       0
(1 row)

current_temp_schema()

描述:返回当前会话的临时schema。如果当前会话没有临时schema,则返回空。该函数仅8.2.1.220及以上集群版本支持。

返回值类型:name

示例:

1
2
3
4
5
select current_temp_schema();
 current_temp_schema
---------------------

(1 row)
1
2
3
4
5
6
7
create temp table tmp1(a int,b int) distribute by hash(a);
CREATE TABLE
select current_temp_schema();
           current_temp_schema
------------------------------------------
 pg_temp_coordinator1_2_2_140718823485088
(1 row)

get_volatile_pg_class()

描述:获取当前会话中所有volatile临时表相关的pg_class元数据。该函数仅8.2.0及以上集群版本支持。

返回值类型:record

返回值字段:

  • oid:返回volatile临时表的oid。
  • 其他字段:同pg_class系统表中的基础字段(不包括系统隐藏字段)。

get_volatile_pg_class(relname text)

描述:获取当前会话中指定volatile临时表相关的pg_class元数据。该函数仅8.2.0及以上集群版本支持。

参数:当前会话中volatile临时表的表名。

返回值类型:record

返回值字段:

  • oid:返回volatile临时表的oid。
  • 其他字段:同pg_class系统表中的基础字段(不包括系统隐藏字段)。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
SELECT * FROM get_volatile_pg_class('tx1');
  oid  | relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | reltoastidxid | reldeltarelid |
 reldeltaidx | relcudescrelid | relcudescidx | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhasoids | relhaspkey | relhasrules | relhastriggers | relhassub
class | relcmprs | relhasclusterkey | relrowmovement | parttype | relfrozenxid | relacl |            reloptions            | relreplident | relfrozenxid64
-------+---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+---------------+---------------+
-------------+----------------+--------------+-------------+-------------+----------------+---------+----------+-----------+------------+------------+-------------+----------------+----------
------+----------+------------------+----------------+----------+--------------+--------+----------------------------------+--------------+----------------
 16772 | tx1     |        16770 |   16774 |         0 |       10 |     0 |       16772 |          1665 |        0 |         0 |             0 |         16775 |             0 |             0 |
           0 |              0 |            0 | f           | f           | v              | r       |        2 |         0 | f          | f          | f           | f              | f
      | 1        | f                | f              | n        | 11815        |        | {orientation=row,compression=no} | d            |          11815
(1 row)

get_volatile_pg_attribute()

描述:获取当前会话中所有volatile临时表相关的pg_attribute元数据。该函数仅8.2.0及以上集群版本支持。

返回值类型:record

返回值字段:
  • oid:返回该列信息的oid。
  • 其他字段:同pg_attribute系统表中的基础字段(不包括系统隐藏字段)。

get_volatile_pg_attribute(relname text, attrname text)

描述:获取当前会话中指定volatile临时表相关的pg_attribute元数据。该函数仅8.2.0及以上集群版本支持。

参数:

  • relname:表名(必须在当前会话中)。
  • attrname:列名。

返回值类型:record

返回值字段:

  • oid:返回该列信息的oid。
  • 其他字段:同pg_attribute系统表中的基础字段(不包括系统隐藏字段)。

示例:

1
2
3
4
5
6
7
8
SELECT * FROM get_volatile_pg_attribute('tx1', 'b');
 attrelid | attname | atttypid | attstattarget | attlen | attnum | attndims | attcacheoff | atttypmod | attbyval | attstorage | attalign | attnotnull | atthasdef | attisdropped | attislocal |
 attcmprmode | attinhcount | attcollation | attacl | attoptions | attfdwoptions | attinitdefval | attkvtype
----------+---------+----------+---------------+--------+--------+----------+-------------+-----------+----------+------------+----------+------------+-----------+--------------+------------+
-------------+-------------+--------------+--------+------------+---------------+---------------+-----------
    16772 | b       |       25 |            -1 |     -1 |      2 |        0 |          -1 |        -1 | f        | x          | i        | f          | f         | f            | t          |
 127         |           0 |          100 |        |            |               |               | 0
(1 row)

pg_get_publication_tables(pubname text)

描述:根据发布的名称,返回对应发布要发布的表的relid列表。该函数仅8.2.0.100及以上集群版本支持。

参数:pubname

返回值类型:set of oid

示例:

1
2
3
4
5
6
SELECT * FROM pg_get_publication_tables('mypub');
 relid 
-------
 16757
 16776
(2 rows)

pg_relation_is_publishable(relname regclass)

描述:检查一个表是否可以发布。该函数仅8.2.0.100及以上集群版本支持。

参数:relname

返回值类型:boolean

示例:

1
2
3
4
5
SELECT * FROM pg_relation_is_publishable('t1');
 pg_relation_is_publishable 
----------------------------
 t
(1 row)

get_col_cu_info(schema_name text, table_name text, row_count int8, dirty_percent int8)

描述:查询某张列存表的CU信息,每个分区单独统计。该函数仅8.2.0.100及以上集群版本支持。

参数:模式名(必选),表名(必选),小CU的行数阈值(可选,默认200,取值范围为1~60000), 脏CU的删除百分比阈值(可选,默认70,取值范围1~100)。

返回值类型:record

返回值字段:

node_name:DN节点名。

part_name:分区名,普通表此列为空。

zero_size_cu_count:cuSize=0,且行数小于等于row_count的CU数。

small_cu_count:cuSize=ALIGNOF_CUSIZE(8192),且行数小于等于row_count的CU数。

dirty_cu_count: 因delete,deadtupe占比超过dirty_percent的CU数。

total_cu_count:总CU数。

small_cu_size:8kCU的总大小。

total_cu_size:总CU大小。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 SELECT * FROM get_col_cu_info('public','hs_part');
 node_name | part_name | zero_size_cu_count | small_cu_count | dirty_cu_count | total_cu_count | small_cu_size | total_cu_size
-----------+-----------+--------------------+----------------+----------------+----------------+---------------+---------------
 dn_1      | p1        |                  3 |              0 |              0 |              3 | 0 bytes       | 0 bytes
 dn_1      | p2        |                  3 |              0 |              0 |              3 | 0 bytes       | 0 bytes
 dn_1      | p3        |                  3 |              0 |              0 |              3 | 0 bytes       | 0 bytes
(3 rows)

 SELECT * FROM get_col_cu_info('public','hs_part', 200, 90);
 node_name | part_name | zero_size_cu_count | small_cu_count | dirty_cu_count | total_cu_count | small_cu_size | total_cu_size
-----------+-----------+--------------------+----------------+----------------+----------------+---------------+---------------
 dn_1      | p1        |                  3 |              0 |              0 |              3 | 0 bytes       | 0 bytes
 dn_1      | p2        |                  3 |              0 |              0 |              3 | 0 bytes       | 0 bytes
 dn_1      | p3        |                  3 |              0 |              0 |              3 | 0 bytes       | 0 bytes
(3 rows)

get_col_file_vacuum_info(schema_name text, table_name text, force_get_rewritten_file_num bool)

描述:查询某张列存表的文件vacuum相关信息,每个分区单独统计。该函数仅8.2.0.100及以上集群版本支持。

参数:模式名(必选),表名(必选),是否强制获取准确的可清理文件数(必选,默认为false)

返回值类型:record

返回值字段:

node_name:DN节点名。

part_name:分区名,普通表此列为空。

total_file_num:总CU文件数。

rewritable_file_num:可重写,但还未重写的文件数。

rewritten_file_num:已重写未清理文件数,此值来源于内存态ClearCache,若由于重启等原因ClearCache丢失,可通过设置force_get_rewritten_file_num=true,消耗额外的时间,强制获取准确的可清理文件数。

empty_file_num:已清理文件数。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SELECT * FROM get_col_file_vacuum_info('public','pa',false);
 node_name | part_name | total_file_num | rewritable_file_num | rewritten_file_num | empty_file_num
-----------+-----------+----------------+---------------------+--------------------+----------------
 datanode1 | pa1       |              1 |                   0 |                  0 |              0
 datanode1 | pa2       |              1 |                   0 |                  0 |              0
 datanode2 | pa1       |              1 |                   0 |                  0 |              0
 datanode2 | pa2       |              1 |                   0 |                  0 |              0
 datanode3 | pa1       |              1 |                   0 |                  0 |              0
 datanode3 | pa2       |              1 |                   0 |                  0 |              0
(6 rows)

get_col_file_vacuum_info(schema_name text, table_name text, colvacuum_threshold_scale_factor int)

描述:查询某张列存表的文件vacuum相关信息,每个分区单独统计。该函数仅8.2.0.100及以上集群版本支持。

参数:模式名(必选),表名(必选),colvacuum_threshold_scale_factor(必选,0-100为dead tuple的比例值)

返回值类型:record

返回值:

node_name:DN节点名。

part_name:分区名,普通表此列为空。

total_file_num:总CU文件数。

rewritable_file_num:可重写,但还未重写的文件数。

rewritten_file_num:已重写未清理文件数,此值来源于内存态ClearCache,若由于重启等原因ClearCache丢失,可通过设置force_get_rewritten_file_num=true,消耗额外的时间,强制获取准确的可清理文件数。

empty_file_num:已清理文件数。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SELECT * FROM get_col_file_vacuum_info('public','pa',10);
 node_name | part_name | total_file_num | rewritable_file_num | rewritten_file_num | empty_file_num
-----------+-----------+----------------+---------------------+--------------------+----------------
 datanode1 | pa1       |              1 |                   0 |                  0 |              0
 datanode1 | pa2       |              1 |                   0 |                  0 |              0
 datanode2 | pa1       |              1 |                   0 |                  0 |              0
 datanode2 | pa2       |              1 |                   0 |                  0 |              0
 datanode3 | pa1       |              1 |                   0 |                  0 |              0
 datanode3 | pa2       |              1 |                   0 |                  0 |              0
(6 rows)

get_all_col_cu_info(row_count int8)

描述:查询全库所有列存表的CU信息。该函数仅8.2.0.100及以上集群版本支持。

参数:小CU的行数阈值(可选,默认值200,取值范围为1~60000。)

返回值类型:record

返回值字段:

node_name:DN节点名。

schema_name:模式名。

table_name:表名。

zero_size_cu_count:cuSize=0,且行数小于等于row_count的CU数。

small_cu_count:cuSize=ALIGNOF_CUSIZE(8192),且行数小于等于row_count的CU数。

total_cu_count:总CU数。

small_cu_size:8kCU的总大小。

total_cu_size:总CU大小。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
SELECT * FROM get_all_col_cu_info(200);
 node_name | schema_name |      table_name      | zero_size_cu_count | small_cu_count | total_cu_count | small_cu_size | total_cu_size
-----------+-------------+----------------------+--------------------+----------------+----------------+---------------+---------------
 datanode1 | public      | udi_48076            |                  5 |              1 |              6 | 8192 bytes    | 8192 bytes
 datanode1 | public      | udi_48077            |                  5 |              1 |              6 | 8192 bytes    | 8192 bytes
 datanode2 | public      | udi_48076            |                  5 |              1 |              6 | 8192 bytes    | 8192 bytes
 datanode2 | public      | udi_48077            |                  5 |              1 |              6 | 8192 bytes    | 8192 bytes
 datanode3 | public      | udi_48076            |                  5 |              1 |              6 | 8192 bytes    | 8192 bytes
 datanode3 | public      | udi_48077            |                  5 |              1 |              6 | 8192 bytes    | 8192 bytes
(6 rows)

get_all_col_file_vacuum_info(force_get_rewritten_file_num bool)

描述:查询全库所有列存表的文件vacuum相关信息。该函数仅8.2.0.100及以上集群版本支持。

参数:是否强制获取准确的可清理文件数(必选,true或false)

返回值类型:record

返回值字段:

node_name:DN节点名。

schema_name:模式名。

table_name:表名。

total_file_num:总CU文件数。

rewritable_file_num:可重写,但还未重写的文件数。

rewritten_file_num:已重写未清理文件数,此值来源于内存态ClearCache,若由于重启等原因ClearCache丢失,可通过设置force_get_rewritten_file_num=true,消耗额外的时间,强制获取准确的可清理文件数。

empty_file_num:已清理文件数。

示例:

1
2
3
4
5
6
7
8
9
SELECT * FROM get_all_col_file_vacuum_info(false);
 node_name | schema_name |      table_name      | total_file_num | rewritable_file_num | rewritten_file_num | empty_file_num
-----------+-------------+----------------------+----------------+---------------------+--------------------+----------------
 datanode1 | public      | udi_57373            |              2 |                   0 |                  0 |              1
 datanode1 | public      | udi_57374            |              2 |                   0 |                  0 |              1
 datanode2 | public      | udi_57373            |              2 |                   0 |                  0 |              1
 datanode2 | public      | udi_57374            |              2 |                   0 |                  0 |              1
 datanode3 | public      | udi_57373            |              2 |                   0 |                  0 |              1
 datanode3 | public      | udi_57374            |              2 |                   0 |                  0 |              1

show_tsc_info()

描述:查询当前数据库节点已获取的TSC(TimeStamp-Counter)信息。该函数仅8.2.1及以上集群版本支持。

返回值类型:record

表4 返回值字段

名称

类型

描述

node_name

text

节点名称。

tsc_mult

bigint

TSC换算乘数。

tsc_shift

bigint

TSC换算位移数。

tsc_frequency

float8

TSC频率。

tsc_use_freqency

boolean

是否使用TSC频率进行时间换算。

tsc_ready

boolean

是否可以使用TSC频率进行时间换算。

tsc_scalar_error_info

text

获取TSC换算信息的错误信息。

tsc_freq_error_info

text

获取TSC频率的错误信息。

示例:

1
2
3
4
SELECT * FROM show_tsc_info();  
  node_name   | tsc_mult | tsc_shift | tsc_frequency | tsc_use_frequency | tsc_ready |     tsc_scalar_error_info     | tsc_freq_error_info
--------------+----------+-----------+---------------+-------------------+-----------+-------------------------------+---------------------
 coordinator1 |          |           |          2400 | t                 | t         | TSC scalar is not initialized |

get_tsc_info()

描述:重新获取当前数据库节点的TSC(TimeStamp-Counter)信息。该函数仅8.2.1及以上集群版本支持。

返回值类型:record

表5 返回值字段

名称

类型

描述

node_name

text

节点名称。

tsc_mult

bigint

TSC换算乘数。

tsc_shift

bigint

TSC换算位移数。

tsc_frequency

float8

TSC频率。

tsc_use_freqency

boolean

是否使用TSC频率进行时间换算。

tsc_ready

boolean

是否可以使用TSC频率进行时间换算。

tsc_scalar_error_info

text

获取TSC换算信息的错误信息。

tsc_freq_error_info

text

获取TSC频率的错误信息。

示例:

1
2
3
4
SELECT * FROM get_tsc_info();  
  node_name   | tsc_mult | tsc_shift | tsc_frequency | tsc_use_frequency | tsc_ready |     tsc_scalar_error_info     | tsc_freq_error_info
--------------+----------+-----------+---------------+-------------------+-----------+-------------------------------+---------------------
 coordinator1 |          |           |          2400 | t                 | t         | TSC scalar is not initialized |

test_tsc_info(time float8, loops int)

描述:测试当前节点通过TSC(TimeStamp-Counter)换算时间的准确性。该函数仅8.2.1及以上集群版本支持。

输入参数含义如下:

  • time:测试的时间差(单位s),测试时长需要小于或者等于60s
  • loops:测试次数,范围值[1,10]

返回值类型:record

返回值字段:

  • id:循环次数。
  • real_time_diff:通过gettimeofday获取的时间差(单位us)。
  • est_time_scalar:通过TSC换算信息转换得到的时间差(单位us)。
  • est_time_frequency:通过TSC频率转换得到的时间差(单位us)。

示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
SELECT * FROM test_tsc_info(0.01,10);
 id | real_time_diff | est_time_scalar | est_time_frequency
----+----------------+-----------------+--------------------
  1 |          10057 |                 |            10056.9
  2 |          10057 |                 |   10057.4816666667
  3 |          10056 |                 |   10055.2841666667
  4 |          10054 |                 |   10054.4908333333
  5 |          10055 |                 |         10054.2875
  6 |          10055 |                 |   10054.7483333333
  7 |          10055 |                 |         10054.4725
  8 |          10054 |                 |   10054.0766666667
  9 |          10058 |                 |   10058.1016666667
 10 |          10057 |                 |   10056.3733333333
(10 rows)

相关文档