データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

Oracle19cと21cの隠しパラメータの差分について調べてみた ~その1~

前回Oracle Databaseの初期化パラメータについて19cと21cの比較を行ったが、今度は隠しパラメータについて同様の比較を行ってみた。

 

0.隠しパラメータの確認方法

隠しパラメータはshow parameterやV$PARAMETERでは確認できないため、下記のようなSQLでX$表を確認した。

SELECT a.ksppinm "Parameter",
       b.ksppstdf "IS_DEFAULT",
       b.ksppstdfl "Default Value",
       b.ksppstvl "Session Value",
       c.ksppstvl "Instance Value",
       decode(bitand(a.ksppiflg/256,1),1,'TRUE','FALSE') IS_SESSION_MODIFIABLE,
       decode(bitand(a.ksppiflg/65536,3),1,'IMMEDIATE',2,'DEFERRED',3,'IMMEDIATE','FALSE') IS_SYSTEM_MODIFIABLE,
       a.ksppdesc DESCRIPTION
FROM   x$ksppi a,
       x$ksppcv b,
       x$ksppsv c
WHERE  a.indx = b.indx
AND    a.indx = c.indx
AND    a.ksppinm LIKE '/_%' escape '/'
;

ちなみに、隠しパラメータの出力方法は下記のオラクル社の技術情報(参照には要サポート契約)に公開されている。ただし、下記情報ではx$ksppcv.ksppstdfがデフォルト値と記載されていたが、実機で確認した限り、x$ksppcv.ksppstdfは現在の設定値がデフォルト値のままであるかを表している様に見え、デフォルト値自体はx$ksppcv.ksppstdflに格納されている様に見えたので、実機調査をする際はこの点に注意が必要だ。

Oracle 隠しパラメータの問い合わせおよび変更方法 - Oracle 10g以降 (ドキュメントID 2563436.1)

 

 

差分確認に使用したOracle Databaseのバージョンは以下の通り。

調査の結果、19cの隠しパラメータは4934個であったのに対して21cは5496個と、単純な個数でいうと約600弱の差があった。そのうち21cでは廃止されていたものは63個、21cにのみ存在していたものは625個と、やはりバージョンが上がって機能が追加されている分、隠しパラメータも追加されていることがわかる。

 

今回確認した差分として、以下5種類の差分について記載する。なお、隠しパラメータのセッション上での値(x$ksppcv.ksppstvl)とインスタンス上での値(x$ksppsv.ksppstvl)についてもSQLで取得してはいるが、環境によって値が異なる可能性が高いため、今回は比較対象外とした。

  1. 21cでは廃止されているパラメータ
  2. 19cと21cでデフォルト値が異なるパラメータ
  3. 19cと21cで設定可能範囲が変更されているパラメータ
  4. 19cと21cでパラメータ名が変わった様に見えるパラメータ
  5. 19c→21cで新規登場したパラメータ

 

1.廃止された隠しパラメータ

21cで廃止されていた隠しパラメータは63個存在した。隠しパラメータはマニュアルに記載がないため、パラメータ概要にはx$ksppi.ksppdesc列の内容を記載した。

パラメータ名 パラメータ概要
_arch_sim_mode Change behavior of local archiving
_asm_enable_parity_datafile_creation Enable parity datafiles creation
_auto_start_pdb_services Automatically start all PDB services on PDB Open
_bug29274428_modsvc_call_out_enabled one-hundred-and-forty-third spare parameter - boolean
_disable_thread_snapshot Thread snapshot
_eighth_spare_parameter eighth spare parameter - integer
_eighty-first_spare_parameter eighty-first spare parameter - string
_enable_auto_upgrade Enable automatic PDB upgrade
_first_spare_parameter first spare parameter - integer
_fourth_spare_parameter fourth spare parameter - integer
_gc_async_receive if TRUE, receive blocks asynchronously
_group_partition_data_for_impdp_ok data pump import allows DATA_OPTIONS=GROUP_PARTITION_DATA
_hang_enable_nodeeviction Enable Hang Manager node eviction
_hang_long_wait_time_threshold Long session wait time threshold in seconds
_hcs_disable_cell_qry_meas_prune_opt apply measure prune optimization to cell query
_hcs_disable_cell_qry_tmpls no cell query templates for optimization
_hcs_disable_hord_in_oby_prune prune levels if HIER_ORDER referenced only in ORDER BY
_hcs_disable_jback_opt_for_hord_in_oby optimize analytic view joinback for HIER_ORDER
_hcs_disable_level_prune_gby perform level pruning in group by
_hcs_disable_level_prune_vis_lvs perform level pruning from visible leaves
_hcs_disable_pushed_preds_in_gen_sql push sql query predicates into hierarchy targets
_hcs_disable_rmv_unref_top_opt apply remove unref top blocks optimization to cell query
_hcs_disable_sp_jback_opt optimize single parent joinback
_hcs_disable_tgt_depths_opt apply target depths optimization
_hcs_enable_dynamic_cache enable/disable av cache DYNAMIC definition
_hcs_enable_mem_trck enable memory tracking
_hcs_enable_multi_parent_gen generate hcs query using multi-parent aggregation
_kkpo_ctb_allow_vpd allow VPD predicates in recursive SQL under CREATE TABLE
_ksipc_ipclw_spare_param1 ksipc ipclw spare parameter 1
_ksipc_spare_param2 ksipc spare param 2
_log_archive_avoid_memcpy log archive avoid memcpy
_ninth_spare_parameter ninth spare parameter - integer
_one-hundred-and-fiftieth_spare_parameter one-hundred-and-fiftieth spare parameter - boolean
_one-hundred-and-fifty-first_spare_parameter one-hundred-and-fifty-first spare parameter - boolean
_one-hundred-and-fifty-second_spare_parameter one-hundred-and-fifty-second spare parameter - boolean
_one-hundred-and-fifty-third_spare_parameter one-hundred-and-fifty-third spare parameter - boolean
_one-hundred-and-forty-eighth_spare_parameter one-hundred-and-forty-eighth spare parameter - boolean
_one-hundred-and-forty-fifth_spare_parameter one-hundred-and-forty-fifth spare parameter - boolean
_one-hundred-and-forty-fourth_spare_parameter one-hundred-and-forty-fourth spare parameter - boolean
_one-hundred-and-forty-ninth_spare_parameter one-hundred-and-forty-ninth spare parameter - boolean
_one-hundred-and-forty-sixth_spare_parameter one-hundred-and-forty-sixth spare parameter - boolean
_optimizer_auto_index_allow Controls Auto Index
_optimizer_quarantine_sql enable use of sql quarantine
_part_access_version_by_number use version numbers to access versioned objects for partitioning
_pga_detail_combine_auto combine auto and manual PGA memory detail snapshots
_reset_maxcap_history reset maxcap history periods
_second_spare_parameter second spare parameter - integer
_securefiles_increase_hbb securefiles increase hbb
_session_fast_lrg_prediction use short interval for session SO prediction
_session_prediction_interval session SO prediction interval
_session_use_linear_prediction use session SO lin-reg prediction
_session_use_periodic_prediction use session SO periodic prediction
_seventh_spare_parameter seventh spare parameter - integer
_show_mgd_recovery_state Show internal managed recovery state
_sixth_spare_parameter sixth spare parameter - integer
_size_of_status_table modifying this hidden parameter, will modify the sizeof the v$gcr_status table
_so_max_inc SO max inc
_ta_lns_wait_for_arch_log LNS Wait time for archived version of ORL
_tablespace_encryption_default_algorithm default tablespace encryption block cipher mode
_twelfth_spare_parameter twelfth spare parameter - integer
_unified_audit_flush_interval Unified Audit SGA Queue Flush Interval
_unified_audit_flush_threshold Unified Audit SGA Queue Flush Threshold
_workload_attributes_spare_param connect string workload behavior spare param

21cで廃止されていた隠しパラメータのうち、下記の2つについては、21cで正式な初期化パラメータに昇格していた。

  • auto_start_pdb_services
  • tablespace_encryption_default_algorithm

 

デフォルト値が変わった隠しパラメータなどは次回に。

 

 

前回の記事:Oracle19cと21cの初期化パラメータの差分について調べてみた ~その2~