pagevis
使用ASCII字符可视化数据库物理页面布局
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pagevis | 0.1 | STAT | MIT | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 6860 | pagevis | 否 | 否 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | pageinspect pg_visibility amcheck pg_surgery pgstattuple pg_dirtyread toastinfo pg_profile |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1 | 1817161514 | pagevis | - |
| RPM | PIGSTY | 0.1 | 1817161514 | pagevis_$v | - |
| DEB | PIGSTY | 0.1 | 1817161514 | postgresql-$v-pagevis | - |
构建
您可以使用 pig build 命令构建 pagevis 扩展的 RPM / DEB 包:
pig build pkg pagevis # 构建 RPM / DEB 包
安装
您可以直接安装 pagevis 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pagevis; # 当前活跃 PG 版本安装
pig ext install -y pagevis -v 18 # PG 18
pig ext install -y pagevis -v 17 # PG 17
pig ext install -y pagevis -v 16 # PG 16
pig ext install -y pagevis -v 15 # PG 15
pig ext install -y pagevis -v 14 # PG 14
dnf install -y pagevis_18 # PG 18
dnf install -y pagevis_17 # PG 17
dnf install -y pagevis_16 # PG 16
dnf install -y pagevis_15 # PG 15
dnf install -y pagevis_14 # PG 14
apt install -y postgresql-18-pagevis # PG 18
apt install -y postgresql-17-pagevis # PG 17
apt install -y postgresql-16-pagevis # PG 16
apt install -y postgresql-15-pagevis # PG 15
apt install -y postgresql-14-pagevis # PG 14
创建扩展:
CREATE EXTENSION pagevis;
用法
pagevis 提供 PostgreSQL 数据库页面内容的 ASCII 图形化表示。它依赖 pageinspect 扩展。
函数
-- show_page(关系名, 块号, 行宽)
SELECT show_page('my_table', 0, 64);
输出字符
| 字符 | 含义 |
|---|---|
P | 页头 |
U | 未使用的行指针 |
N | 正常行指针 |
R | 重定向行指针 |
D | 已死行指针 |
| (空格) | 空闲空间(“空洞”) |
[n] | 元组编号(叠加在元组头上) |
H | 元组头 |
# | 元组数据 |
- | 对当前事务不可见的元组(已死) |
. | 元组间填充 |
示例
SELECT show_page('pvtest', 0, 64);
show_page
------------------------------------------------------------------
PPPPPPPPPPPPPPPPPPPPPPPP001N002N003N004N005N006N007N008N009N010N
011N012N013N014N015N016N017N018N019N020N...
[226]HHHHHHHHHHHHHHHHHHH####....[225]HHHHHHHHHHHHHHHHHHH####....
[224]HHHHHHHHHHHHHHHHHHH####....[223]HHHHHHHHHHHHHHHHHHH####....
页头(P)和行指针(N)出现在开头,空闲空间在中间,元组从页面末尾向前增长。当行指针和元组之间没有剩余空间时,页面就满了。
需要超级用户权限(使用 pageinspect 的 get_raw_page)。