选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

PostgreSQL 博览 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。迁移流水线更适合后者,它能被逻辑复制传播。