NEWSニュース&ブログ

Oracle 便利SQL帖 その5現在のセッションの初期化パラメータを確認する

この記事は最終更新から8年以上経過しています。内容が古くなっている可能性があります。

投稿日:2016/8/10

V$PARAMETER

 V$PARAMETERビューを確認する事で現在のセッションで有効となっている初期化パラメータの値を確認する事が出来ます。

V$PARAMETERビューの説明

ここではV$PARAMETERビューの主要な項目を記載します。


説明
1NAMEパラメータ名
2VALUEパラメータの値
3DISPLAY_VALUEパラメータの値を見やすいフォーマットで表示
4ISDEFAULTデフォルト値が設定されているかどうか
(TRUE:デフォルト値、FALSE:デフォルト値ではない)
5ISSES_MODIFIABLEALTER SESSIONで変更できるパラメータかどうか
(TRUE:変更できる、FALSE:変更できない。)
6ISSYS_MODIFIABLEALTER SYSTEMで変更できるパラメータかどうか。また変更できる場合、そのパラメータが有効になる時期。
・IMMEDIATE
 ALTER SYSTEMで即時に変更結果の有効化が可能。
・DEFERRED
 ALTER SYSTEMで変更可能だが、以降のセッションで変更結果が有効となる。
・FALSE
 ALTER SYSTEMでサーバパラメータファイルの変更を行い、変更結果を反映する為に再起度が必要。
7DEFERREDパラメータの説明

実行例

 V$PARAMETERビューを使って、現在のセッションで有効になっているパラメータを確認します。

【SQL】
set lines 200
set pages 9999
col name for a30
col value for a30
col display_value for a30
col description for a70
select
 name,
 value,
 display_value,
 isdefault,
 isses_modifiable,
 issys_modifiable,
 description
from v$parameter;

 

【実行結果】

NAME                           VALUE                          DISPLAY_VALUE                  ISDEFAULT ISSES ISSYS_MOD DESCRIPTION
------------------------------ ------------------------------ ------------------------------ --------- ----- --------- ----------------------------------------------------------------------
processes                      150                            150                            FALSE     FALSE FALSE     user processes
sessions                       248                            248                            TRUE      FALSE FALSE     user and system sessions
timed_statistics               TRUE                           TRUE                           TRUE      TRUE  IMMEDIATE maintain internal timing statistics
timed_os_statistics            0                              0                              TRUE      TRUE  IMMEDIATE internal os statistic gathering interval in seconds
resource_limit                 FALSE                          FALSE                          TRUE      FALSE IMMEDIATE master switch for resource limit
license_max_sessions           0                              0                              TRUE      FALSE IMMEDIATE maximum number of non-system user sessions allowed
license_sessions_warning       0                              0                              TRUE      FALSE IMMEDIATE warning level for number of non-system user sessions
cpu_count                      4                              4                              TRUE      FALSE IMMEDIATE number of CPUs for this instance

 

この例ではprocessの値は150となっており、ISDEFAULTが「FALSE」の為、デフォルトの値でない事を確認できます。また、ISSES_MODIFIABLEが「FALSE」の為、ALTER SESSION分では変更が行えず、ISSYS_MODIFIABLEも「FALSE」の為、この値を変更する場合にはALTER SYSTEM分でサーバパラメータファイルの変更を行い、再起動が必要である事が確認できます。

コラム V$PARAMETER2

現在のパラメータの値を確認するのに。V$PARAMETER2の利用も可能です。内容はほぼ、V$PARAMETERと変わりませんが、V$PARAMETER2はパラメータの値でいくつかの値がリストされているようなパラメータに関して1行ずつで出力すると言う特徴があります。

SQL> select
  2   name,
  3   value
  4  from
  5   v$parameter
  6  where
  7   name = 'control_files';

NAME                           VALUE
------------------------------ ------------------------------
control_files                  C:\APP\XXXXXX\ORADATA\ORC
                               L01\CONTROL01.CTL, C:\APP\\XXXXXX
                               \ORADATA\ORCL01\CONTROL
                               02.CTL

 

上記の通り、V$PARAMETERで「control_files」パラメータを調べると、2つの制御ファイルが、「,」区切りで、1つのカラム内に出力されている事が分かります。しかし、V$PARAMETER2の場合には、別々の行に表示されます。

SQL> select
  2   name,
  3   value
  4  from
  5   v$parameter2
  6  where
  7   name = 'control_files';

NAME                           VALUE
------------------------------ ------------------------------
control_files                  C:\APP\XXXXXX\ORADATA\ORC
                               L01\CONTROL01.CTL

control_files                  C:\APP\XXXXX\ORADATA\ORC
                               L01\CONTROL02.CTL

 

必要に応じて使い分けてみてください。