You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure PostgreSQL中使用pg_repack扩展?

在Azure PostgreSQL中使用pg_repack扩展的方法

一、确认扩展支持

先确认你的Azure PostgreSQL弹性服务器版本(如PostgreSQL 14及以上)是否包含pg_repack扩展,可通过Azure门户查看支持的扩展列表,或执行SQL查询验证:

SELECT * FROM pg_available_extensions WHERE name = 'pg_repack';

二、安装pg_repack扩展

  1. 使用拥有超级权限或CREATEROLE权限的用户连接数据库,执行安装命令:
CREATE EXTENSION pg_repack;
  1. 验证安装结果:
SELECT * FROM pg_extension WHERE extname = 'pg_repack';

三、通过SQL脚本调用pg_repack

pg_repack提供了SQL函数来执行表/索引整理,常用调用方式如下:

  • 整理指定表:
SELECT pg_repack('public.你的表名');

替换你的表名为实际表名称,public为表所在模式,若表在其他模式需对应修改。

  • 整理指定索引:
SELECT pg_repack('public.你的索引名', 'index');
  • 整理整个数据库:
SELECT pg_repack('');

注意:整库整理权限要求高且资源消耗大,建议在业务低峰期执行。

四、核心注意事项

  • 执行pg_repack的用户需拥有目标表的SELECT、INSERT、UPDATE、DELETE权限,以及表上所有索引的USAGE权限
  • 目标表必须包含主键或唯一索引(pg_repack依赖唯一键同步数据)
  • 整理过程中表可正常读写,不会锁表
  • 操作会生成临时表,需确保数据库有足够磁盘空间(至少为目标表大小的1.2倍)
  • 不支持整理系统表、临时表、外部表,以及分区表的父表(分区表需单独整理每个分区)

内容的提问来源于stack exchange,提问作者Christian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 14:24:57