random_page_cost

一个 GUC 设置,用于设置随机获取磁盘页面的成本

random_page_cost 是一个用于设置规划器对非顺序获取磁盘页面的成本估计的配置参数

random_page_cost 添加于PostgreSQL 7.0

默认值

random_page_cost 的默认值为:4.0

用法

random_page_cost 是一个全局 GUC,对所有数据库有效。但是,可以使用以下方法为单个表空间设置它:

ALTER TABLESPACE ... SET ( random_page_cost = ...)

如果不同的值更适合它们存储的介质。请注意,如果为表空间设置,则无法覆盖random_page_cost

按 PostgreSQL 版本分列的详细信息

random_page_cost (PostgreSQL 18)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 17)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 16)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 15)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 14)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 13)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 12)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 11)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 10)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 9.6)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 9.5)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  
待重启

文档: random_page_cost

random_page_cost (PostgreSQL 9.4)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  

文档: random_page_cost

random_page_cost (PostgreSQL 9.3)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  

文档: random_page_cost

random_page_cost (PostgreSQL 9.2)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  

文档: random_page_cost

random_page_cost (PostgreSQL 9.1)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  

文档: random_page_cost

random_page_cost (PostgreSQL 9.0)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  

文档: random_page_cost

random_page_cost (PostgreSQL 8.4)

设置 4
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308
枚举值  
启动值 4
重置值 4
源文件  
源代码行号  

文档: random_page_cost

random_page_cost (PostgreSQL 8.3)

设置  
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308

文档: random_page_cost

random_page_cost (PostgreSQL 8.2)

设置  
单位  
类别 查询调优 / 规划器成本常量
简短描述 设置规划器对非顺序获取磁盘页面的成本估计。
额外描述  
上下文 用户
变量类型 实数
来源 默认值
最小值 0
最大值 1.79769e+308

文档: random_page_cost

更改历史记录

示例

给定一个任意大的表,并将random_page_cost 设置为默认值4,PostgreSQL 会选择索引扫描

postgres=# CREATE TABLE foo (id INT NOT NULL PRIMARY KEY);
CREATE TABLE

postgres=# INSERT INTO foo values(generate_series(1,10000000));
INSERT 0 10000000

postgres=# SHOW random_page_cost;
 random_page_cost 
------------------
 4
(1 row)

postgres=# EXPLAIN SELECT * FROM foo WHERE id BETWEEN 1000000 and 2000000;
                                    QUERY PLAN                                     
-----------------------------------------------------------------------------------
 Index Only Scan using foo_pkey on foo  (cost=0.43..32073.10 rows=1035633 width=4)
   Index Cond: ((id >= 1000000) AND (id <= 2000000))
(2 rows)

但是,如果将random_page_cost 设置为(一个不太可能的高)值,PostgreSQL 将确定顺序扫描将更有效(即使实际上可能并非如此)

postgres=# SET random_page_cost to 4000;
SET

postgres=# EXPLAIN SELECT * FROM foo WHERE id BETWEEN 1000000 and 2000000;
                          QUERY PLAN                          
--------------------------------------------------------------
 Seq Scan on foo  (cost=0.00..194248.72 rows=1035633 width=4)
   Filter: ((id >= 1000000) AND (id <= 2000000))
(2 rows)

分类

GUC 配置项规划器

另请参阅

seq_page_cost, cpu_tuple_cost, cpu_index_tuple_cost, cpu_operator_cost

反馈

提交任何关于“random_page_cost”的评论、建议或更正 此处