↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

PostgreSQL 博览 · 2026-03-22 RSS

保留原始来源与发布日期的新闻、博客和活动。

12 条内容

PostgreSQL 19 收入 pg_plan_advice 模块

Hubert 'depesz' Lubaczewskidepesz.com

Robert Haas 在 3 月 12 日提交了 contrib 模块 pg_plan_advice,它把连接顺序、连接方式、扫描方式和并行策略等规划器决策写成一段文本建议,用来固定已经验证过的执行计划。用法是 SET pg_plan_advice.advice 指定建议,再用 EXPLAIN (plan_advice) 查看规划器给出的建议文本。depesz 提醒这是把双刃剑:建议一旦写死就长期生效,数据分布变了很容易把查询锁死在糟糕的计划上。

pg_regresql 让规划器改用目录里的统计

Radim Marekboringsql

PostgreSQL 规划器不看 pg_class.relpages,而是量磁盘文件大小再缩放行数估计,所以把生产统计灌进小测试库仍复现不出生产计划。Radim Marek 的 pg_regresql 挂在 get_relation_info_hook 上,等规划器读完物理指标,再把已 ANALYZE 表的页数与行数换回目录中的值,未分析的表保持原样。扩展不需要配置、后台进程或共享内存,LOAD 一次即生效,支持 13 到 18。

重置序列时 START WITH 并不会改动计数器

Deepak MahtoDatabase Rookies

Deepak Mahto 在 Oracle 迁移中发现,ora2pg 用 ALTER SEQUENCE … START WITH 重置序列并不生效,直到对账出现差额才暴露。序列的计数器在 last_value 上,START WITH 只改 start_value。真正的重置要用 RESTART WITH n 或 setval(seq, n, false),两者都让下次取值等于 n。迁移流水线更适合后者,它能被逻辑复制传播。