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

PostgreSQL视图能否设置fillfactor参数?

问题解答

是的,PostgreSQL 无法为普通视图设置 fillfactor 参数。

原因说明

  • fillfactor 是针对物理存储表的配置参数,作用是控制数据页的填充比例,预留空间避免更新时的页分裂,仅对有实际物理存储的对象生效(比如普通表、物化视图)。
  • 普通视图是纯虚拟的查询定义,本身不存储任何数据,每次调用视图时都会实时执行底层SQL查询获取结果,没有物理数据页的概念,因此不支持这类和物理存储相关的参数。

解决方案

修改你的脚本,只对当前schema下的实际表执行 fillfactor 设置操作。可以通过查询系统表筛选出目标对象:

-- 生成当前schema下所有普通表的ALTER语句
SELECT 'ALTER TABLE ' || quote_ident(n.nspname) || '.' || quote_ident(c.relname) || ' SET (fillfactor = 70);'
FROM pg_class c
JOIN pg_namespace n ON c.relnamespace = n.oid
WHERE n.nspname = current_schema()
  AND c.relkind = 'r'; -- 'r'代表普通表,排除视图('v')、物化视图('m')等非表对象

执行上述查询生成的所有 ALTER TABLE 语句即可完成目标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 04:12:02