plan_filter
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_plan_filter | 1.0.0 | FEAT | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2810 | plan_filter | 否 | 是 | 是 | 否 | 否 | 否 | - |
| 相关扩展 | pg_hint_plan pg_kpart pg_command_fw hypopg index_advisor pg_qualstats online_advisor block_copy_command pg_stat_plans pg_readonly |
|---|
Maintained RPM/DEB recipes and versioned source are 1.0.0; local package matrix on 2026-10-10 has RPM 1.0.0 and DEB 0.0.1. Retain maintained DEB 1.0.0; repository publication is a separate check.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.0 | 1817161514 | pg_plan_filter | - |
| RPM | PIGSTY | 1.0.0 | 1817161514 | pg_plan_filter_$v | - |
| DEB | PIGSTY | 1.0.0 | 1817161514 | postgresql-$v-pg-plan-filter | - |
构建
您可以使用 pig build 命令构建 pg_plan_filter 扩展的 RPM / DEB 包:
安装
您可以直接安装 pg_plan_filter 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
预加载配置:
用法
来源:
plan_filter 是 pg_plan_filter 1.0.0 的可加载库,根据配置的计划估算成本拒绝语句或事务。支持 PostgreSQL 14–18,没有需要创建的 SQL 扩展。
核心用法
运行边界
将库追加到已有预加载列表并重启;开发和测试也可使用 LOAD。两个成本上限都默认为零,即不限制。plan_filter.statement_cost_limit 限制单条计划,也可能拒绝高成本的普通 EXPLAIN。plan_filter.transaction_cost_limit 对每次执行记账,包括反复执行预备语句;回滚到保存点不会返还预算。普通 EXPLAIN 不消耗事务预算,包含执行计划的工具命令则会计入。
plan_filter.filter_select_only 为真时两个上限只过滤 SELECT,但 SELECT 仍可能产生副作用。plan_filter.module_loaded 是只读的加载标志。修改上限需要超级用户或明确授予的参数设置权限,拒绝操作的 SQLSTATE 为 54001。成本是估算值而非运行时间,普通角色可以降低规划器成本设置绕过阈值。因此它适合防止意外负载,不能单独承担对抗恶意会话的安全边界。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)