見出し画像

手を動かすPostgreSQL(9)-GUCパラメータSET変更編-

前回のあらすじ

前回はGUCパラメータをリロードで変更する方法について説明しました。

superuser(スーパーユーザのSETコマンド)、user(通常ユーザのSETコマンド)について

ロールの概念については3回前にやったので割愛します。
今回はcontextがユーザのパラメータとしてenable_indexscanを使用します。

ossdb=# \x
Expanded display is on.
ossdb=# SELECT * FROM pg_settings WHERE name='enable_indexscan';
-[ RECORD 1 ]---+-----------------------------------------------
name            | enable_indexscan
setting         | on
unit            | 
category        | Query Tuning / Planner Method Configuration
short_desc      | Enables the planner's use of index-scan plans.
extra_desc      | 
context         | user
vartype         | bool
source          | default
min_val         | 
max_val         | 
enumvals        | 
boot_val        | on
reset_val       | on
sourcefile      | 
sourceline      | 
pending_restart | f

では早速SETコマンドを実行します。設定値が変わったのが分かりますね。(3回目なのでかっ飛ばす流れ)

ossdb=# SET enable_indexscan TO off;
SET
ossdb=# SELECT * FROM pg_settings WHERE name='enable_indexscan';
-[ RECORD 1 ]---+-----------------------------------------------
name            | enable_indexscan
setting         | off
unit            | 
category        | Query Tuning / Planner Method Configuration
short_desc      | Enables the planner's use of index-scan plans.
extra_desc      | 
context         | user
vartype         | bool
source          | session
min_val         | 
max_val         | 
enumvals        | 
boot_val        | on
reset_val       | on
sourcefile      | 
sourceline      | 
pending_restart | f

一応postmaster(再起動)のパラメータが反映されないのも確かめたいので、postmasterのパラメータとしてshared_buffersを用います。

ossdb=# SET shared_buffers TO 8192;
ERROR:  parameter "shared_buffers" cannot be changed without restarting the server

エラーが出て変更できなかったことが分かります。

さて、これで長かったGUCパラメータもひと段落です。次は何を書きましょうか。


宣伝

OSS-DB Goldの認定教材をリリースしました。
2023年2月時点で唯一のVer.3.0対応の教材です。
(自分も含めて)既にこの教材を活用した合格者を輩出しております。
受験を検討されている方はぜひご検討の程をお願い致します。

次回の記事はこちら

この記事が気に入ったらサポートをしてみませんか?