default_statistics_target 是一个 配置参数,用于确定没有显式设置统计信息的表列的默认统计信息目标。
default_statistics_target 在 PostgreSQL 7.3 中被添加。
默认值
default_statistics_target 的默认值为:100。
用法
default_statistics_target 决定了在 pg_statistic 的 stanumbers1 ~ stanumbers5 和 stavalues1 ~ stavalues5 列中包含的值的数量。
请注意,实际存储的值的数量可能不完全等于为 default_statistics_target 设置的值。
按 PostgreSQL 版本详细信息
default_statistics_target (PostgreSQL 19)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 18)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 17)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 16)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 15)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 14)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 13)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 12)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 11)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 10)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 9.6)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 9.5)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 | |
| 需要重启 | false |
default_statistics_target (PostgreSQL 9.4)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 |
default_statistics_target (PostgreSQL 9.3)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 |
default_statistics_target (PostgreSQL 9.2)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 |
default_statistics_target (PostgreSQL 9.1)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 |
default_statistics_target (PostgreSQL 9.0)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 |
default_statistics_target (PostgreSQL 8.4)
| 设置 | 100 |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 10000 |
| 枚举值 | |
| 启动值 | 100 |
| 重置值 | 100 |
| 源文件 | |
| 源行 |
default_statistics_target (PostgreSQL 8.3)
| 设置 | |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 1000 |
default_statistics_target (PostgreSQL 8.2)
| 设置 | |
| 单位 | |
| 类别 | 查询调优 / 其他规划器选项 |
| 简短描述 | 设置默认的统计信息目标。 |
| 扩展描述 | 此设置适用于未通过 ALTER TABLE SET STATISTICS 设置列特定目标的表列。 |
| 上下文 | user |
| 变量类型 | 整数 |
| 来源 | 默认 |
| 最小值 | 1 |
| 最大值 | 1000 |
变更历史
- PostgreSQL 8.4
- 默认值从
10增加到100;最大值从1000增加到10000(提交 65e3ea76)
- 默认值从
- PostgreSQL 7.3
- 添加 (提交 ce7565ab)
示例
default_statistics_target 的基本用法示例
postgres=# CREATE TABLE foo (id INT);
CREATE TABLE
postgres=# INSERT INTO foo VALUES(generate_series(1,101));
INSERT 0 101
postgres=# SHOW default_statistics_target;
default_statistics_target
---------------------------
100
(1 row)
postgres=# ANALYZE foo;
ANALYZE
postgres=# SELECT stavalues1
FROM pg_statistic
WHERE starelid = 'foo'::regclass\gx
-[ RECORD 1 ]---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
stavalues1 | {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101}
postgres=# SET default_statistics_target TO 10;
SET
postgres=# ANALYZE foo;
ANALYZE
postgres=# SELECT stavalues1
FROM pg_statistic
WHERE starelid = 'foo'::regclass\gx
-[ RECORD 1 ]----------------------------------
stavalues1 | {1,11,21,31,41,51,61,71,81,91,101}
参考资料
- PostgreSQL 文档: default_statistics_target
