更新时间:2024-04-30 GMT+08:00

PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS

PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS视图展示当前库中表的数据分布倾斜情况。支持快速查看当前库中所有表在各节点的存储空间分布倾斜大小情况。该视图仅8.2.1及以上集群版本支持。

倾斜率的计算方式:倾斜率(SKEW_PERCENT)= (最大值 - 平均值) * 100/最大值

表1 PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS字段

名称

类型

描述

schema_name

name

表所在的模式名称。

table_name

name

表名。

total_size

numeric

表在各个节点上的存储空间大小总和值,单位为字节。

avg_size

numeric(1000,0)

表在各个节点上的存储空间大小的平均值,单位为字节。

max_percent

numeric

表在各个节点上的存储空间的最大值占总和值的百分比(%)。

min_percent

numeric

表在各个节点上的存储空间的最小值占总和值的百分比(%)。

skew_percent

numeric

表的倾斜率信息(%)。

  • 使用本视图查询指定表存储分布信息,需要具备指定表的SELECT权限。
  • 该函数基于PG_RELFILENODE_SIZE系统表上的物理文件存储空间记录,需确保GUC参数use_workload_manager和enable_perm_space为开启状态。
  • 在大集群大数据量业务场景下进行全库各表所占磁盘空间倾斜率分析时,PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS视图的查询性能优于gs_table_distribution()函数和PGXC_GET_TABLE_SKEWNESS视图。建议先使用PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS视图查询表的倾斜状况总览,再使用gs_table_distribution(schemaname text, tablename text)获取指定表在各个节点所占磁盘空间大小的分布情况。

应用示例

使用PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS视图查询表的倾斜状况总览,再使用gs_table_distribution(schemaname text, tablename text)函数获取指定表在各个节点所占磁盘空间大小的分布情况。

  1. 使用PGXC_WLM_TABLE_DISTRIBUTION_SKEWNESS视图查询表的倾斜状况总览。

    tpcds_col=# select * from pgxc_wlm_table_distribution_skewness;

    查询结果如下:

    显示表dbgen_version的数据倾斜程度较为严重。

  2. 使用gs_table_distribution(schemaname text, tablename text)函数查询表dbgen_version在各个节点所占磁盘空间大小的分布情况。

    tpcds_col=# select * from gs_table_distribution('public','dbgen_version');

    查询结果如下:

    显示该表在DN上所占磁盘空间确实存在数据倾斜现象,数据集中在dn_6005_6006上。