跳转到主要内容

pg_relusage

打印查询引用的表与列

概览

扩展包名版本分类许可证语言
pg_relusage1.0.2STATPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
6850pg_relusage否是是否否是-

LOAD/preload enables logging; CREATE EXTENSION only records installation.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.0.21817161514pg_relusage-
RPMPIGSTY1.0.21817161514pg_relusage_$v-
DEBPIGSTY1.0.21817161514postgresql-$v-pg-relusage-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
d12.aarch64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
d13.x86_64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
d13.aarch64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
u22.x86_64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
u22.aarch64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
u24.x86_64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
u24.aarch64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
u26.x86_64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
u26.aarch64
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2
PIGSTY 1.0.2

构建

您可以使用 pig build 命令构建 pg_relusage 扩展的 RPM / DEB 包:

pig build pkg pg_relusage         # 构建 RPM / DEB 包

安装

您可以直接安装 pg_relusage 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pg_relusage;          # 当前活跃 PG 版本安装
pig
pig ext install -y pg_relusage -v 18  # PG 18
pig ext install -y pg_relusage -v 17  # PG 17
pig ext install -y pg_relusage -v 16  # PG 16
pig ext install -y pg_relusage -v 15  # PG 15
pig ext install -y pg_relusage -v 14  # PG 14
dnf
dnf install -y pg_relusage_18       # PG 18
dnf install -y pg_relusage_17       # PG 17
dnf install -y pg_relusage_16       # PG 16
dnf install -y pg_relusage_15       # PG 15
dnf install -y pg_relusage_14       # PG 14
apt
apt install -y postgresql-18-pg-relusage   # PG 18
apt install -y postgresql-17-pg-relusage   # PG 17
apt install -y postgresql-16-pg-relusage   # PG 16
apt install -y postgresql-15-pg-relusage   # PG 15
apt install -y postgresql-14-pg-relusage   # PG 14

预加载配置:

shared_preload_libraries = 'pg_relusage';

用法

来源:

pg_relusage 1.0.2 记录执行计划简化后语句使用的关系,支持 PostgreSQL 10–18,不定义 SQL 对象。加载共享库才会启用功能;可选的 CREATE EXTENSION 仅登记安装状态。

核心用法

LOAD 'pg_relusage';
SET pg_relusage.nested_statements = 'fold';
SET pg_relusage.log_level = 'notice';
CREATE TABLE relusage_demo (id integer);
SELECT * FROM relusage_demo;

运行边界

全部设置都需要超级用户:pg_relusage.enabled 默认 on,pg_relusage.log_level 默认 log,pg_relusage.rel_kinds 默认 riSvmfp。pg_relusage.nested_statements 可选 all(默认,每条语句单独记录)、top(忽略嵌套语句)或 fold(将嵌套关系合并到外层日志)。1.0.1 修复子事务失败后 fold 模式的处理。

用 session_preload_libraries 可在新会话中加载,无需重启;用 shared_preload_libraries 覆盖全部会话则需要重启,应保留已有预加载项。LOAD 通常要求超级用户。日志不包含 SQL 文本,可配置 log_line_prefix 标识客户端。

系统目录不记录。规划或执行器启动时被排除的关系不记录,但执行过程中跳过的分区仍可能出现。向分区表 INSERT 时只记录父表。COMMIT 时的延迟触发器、COPY FROM 触发器及规划器调用的函数按顶层语句处理。DDL 与维护命令不记录。日志中暂未出现某对象,并不足以证明可以删除它。

1.0.2 与分区表

1.0.2 降低了涉及大量分区时的关系集合检查与分区匹配开销,日志格式和配置不变。替换共享库后,使用共享预加载的实例需要重启,使用会话预加载或 LOAD 的连接需要重新连接。若曾用 CREATE EXTENSION 登记安装,还应执行 ALTER EXTENSION pg_relusage UPDATE。

这个页面对您有帮助吗?