Postgres 设置在 pgsql 中报告不同

sum*_*mit 3 postgresql postgresql-9.2

show effective_cache_size;我们在 CentOS 6 上运行 PostgreSQL 9.2,当我运行命令与查询时,我发现设置报告有所不同select * from pg_settings where name = 'effective_cache_size';。据我所知,这些命令应该是相同的。例如

显示有效缓存大小;

有效缓存大小
----------------------
 2816MB
(1 行)

选择名称,从 pg_settings 设置,其中 name = ' effective_cache_size';

名称 | 有效缓存大小

设置 | 360448

我正在尝试找出 PostgreSQL 使用的值。如果我以超级用户身份运行它,我会得到相同的结果。我该相信哪一个?

dez*_*zso 5

我在我的测试数据库上看到了同样的差异:

\n\n
show shared_buffers;\n shared_buffers \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 768MB\n\n\nselect name, setting from pg_settings where name = 'shared_buffers';\n      name      \xe2\x94\x82 setting \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n shared_buffers \xe2\x94\x82 98304\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后观察了一会儿数字,我设置了以下查询:

\n\n
SELECT 98304 * 8192 / (1024 * 1024);\n ?column? \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n      768\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以,对我来说,它看起来像这样pg_settings在 8 kb 页中报告这些大小(8192 指的是这个事实)。

\n\n

请注意,还有第三种方法来检查设置,即current_setting()函数:

\n\n
SELECT current_setting('shared_buffer');\n current_setting\n-----------------\n 768MB\n
Run Code Online (Sandbox Code Playgroud)\n