如何查询PostgreSQL中列的自定义统计级别设置?
查询PostgreSQL列的自定义统计级别
要查看列的自定义统计设置,直接查询系统表pg_attribute即可,其中的attstattarget字段存储了列的统计目标值:
SELECT attrelid::regclass AS table_name, attname AS column_name, attstattarget AS statistics_level FROM pg_attribute WHERE attrelid = 'your_table_name'::regclass AND attnum > 0 -- 排除系统隐藏列 AND NOT attisdropped; -- 排除已删除的列
- 当
attstattarget值为-1时,说明该列使用系统默认统计级别(对应default_statistics_target参数的配置值) - 如果是手动通过
ALTER TABLE ... SET STATISTICS设置过的列,会显示你指定的整数值
如果只想筛选出已经手动修改过统计级别的列,可以添加额外条件:
SELECT attrelid::regclass AS table_name, attname AS column_name, attstattarget AS statistics_level FROM pg_attribute WHERE attrelid = 'your_table_name'::regclass AND attnum > 0 AND NOT attisdropped AND attstattarget != -1;
内容的提问来源于stack exchange,提问作者Umut TEKİN
相关产品推荐
相关产品推荐

