1查看参数

方法一

select name,context,unit,setting,boot_val,reset_val from pg_settings where name in('listen_addresses','max_connectsions','shared_buffers','effective_cache_size','work_mem','maintenance_work_mem') order by context,name;

方法二
show work_mem

 

2修改参数

修改参数可以修改配置文件

select * from pg_settings where category like 'File%';

修改上面查看到的配置文件

# - Memory -


shared_buffers = 128MB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note:  Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
#work_mem = 1MB # min 64kB
#maintenance_work_mem = 16MB # min 1MB
#max_stack_depth = 2MB # min 100kB
work_mem=2MB

重新加载配置文件

使用super用户执行

select pg_reload_conf();

show work_mem

已经改成了2MB。

修改配置文件对于所有用户生效,可以针对一个回话或一个单独的事务设置参数

set  work_mem='16MB';  针对的是会话中的所有的事务生效

set local work_mem = '16MB' 针对的是当前事务生效

3恢复参数的默认设置

reset all;

4查看那些参数不是默认设置

select name,source,setting from pg_settings where source!='default' and source !='override' order by 2,1;

5对特定的用户或组设置参数

alter database saas set configuration_parameter = value; 对saas数据库的所有用户

alter role test set configuration_parameter= value; 对saas角色设置参数

alter role test in database saas set configuration_parameter= value;对连接到saas数据库的test角色设置参数