可能有一些函数来检查索引和表的fillfactor?我已经尝试过\ d +但只有基本定义,没有fillfactor值:
Index "public.tab1_pkey"
Column | Type | Definition | Storage
--------+--------+------------+---------
id | bigint | id | plain
primary key, btree, for table "public.tab1"
桌子上找不到任何东西。如果使用fillfactor创建表而不是默认值:
CREATE TABLE distributors (
did integer,
name varchar(40),
UNIQUE(name) WITH (fillfactor=70)
)
WITH (fillfactor=70);
然后\d+ distributors
显示非标准的fillfactor。
Table "public.distributors"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
did | integer | | plain | |
name | character varying(40) | | extended | |
Indexes:
"distributors_name_key" UNIQUE CONSTRAINT, btree (name) WITH (fillfactor=70)
Has OIDs: no
Options: fillfactor=70
但也许有一种方法可以在不解析输出的情况下获得此值?
答案 0 :(得分:10)
您需要查询pg_class
系统表:
select t.relname as table_name,
t.reloptions
from pg_class t
join pg_namespace n on n.oid = t.relnamespace
where t.relname in ('tab11_pkey', 'tab1')
and n.nspname = 'public'
reloptions
是一个数组,每个元素包含一个option=value
定义。但对于具有默认选项的关系,它将为null。