행위

오라클 히든 파라미터

DB CAFE

DBCAFE (토론 | 기여)님의 2020년 3월 19일 (목) 13:12 판 (_db_block_hash_buckets)
thumb_up 추천메뉴 바로가기


1 오라클 히든 파라메터 조회[편집]

-- SYS 로 Login:

--
-- List all hidden database parameters.
--
 
SET PAUSE ON
SET PAUSE 'Press Return to Continue'
SET PAGESIZE 60
SET LINESIZE 300
 
COLUMN ksppinm FORMAT A50
COLUMN ksppstvl FORMAT A50
 
SELECT
  ksppinm,
  ksppstvl
FROM
  x$ksppi a,
  x$ksppsv b
WHERE
  a.indx=b.indx 
AND
  substr(ksppinm,1,1) = '_'
ORDER BY ksppinm
select a.ksppinm name, b.ksppstvl value
from 
  x$ksppi a,
  x$ksppsv b
WHERE
  a.indx=b.indx 
and a.ksppinm like '%bloom%';

2 추천 히든 파라메터 목록[편집]

2.1 _optim_peek_user_binds[편집]

alter system set "_optim_peek_user_binds" = false scope=both;
. Bind variable peeking(바인드변수 엿보기) 기능 활서 여부
. Bind Peeking : Bind 변수를 포함하는 SQL문이 최초로 실행될 때 Bind 변수값을 이용해서 실행계획을 수립하는 기능
=> Bind Peeking에 따른 잘못된 실행계획이 수립되는 것을 방지하기 위해 false 로 설정 권고


2.2 _optimizer_use_feedback[편집]

. 쿼리의 최초 실행 시 예측 건수와 실제 건수의 차이가 크면 opt_estimate 힌트의 형태로 쿼리가 변경되도록 함
=> 의도되지 않은 SQL 실행계획 유발의 우려가 있으므로 false로 설정 권고 

2.3 _add_col_optim_enabled[편집]

. column add 시 dictionary만 update 하고 이후 insert 시 해당 컬럼이 생성
=> 권고: wrong result scale로 인해 false(참고 : 19183343.8)

2.4 _optimizer_aggr_groupby_elim[편집]

. group-by and aggregation elimination 기능의 활성화 여부
=> 권고 : wrong result 발생으로 false(참고 : 19567916.8, 1924440.1)

2.5 _optimizer_reduce_groupby_key[편집]

. Group by key reduction
=> 권고 : wrong result 발생으로 false(참고 : 19567916.8, 1924440.1)

3 히든 파라메터 목록[편집]

3.1 _b_tree_bitmap_plans[편집]

enable the use of bitmap plans for tables w. only B-tree indexes FALSE 설정 Def. = TRUE

3.2 _cleanup_rollback_entries[편집]

no. of undo entries to apply per transaction cleanup 2000 설정

Def. = 100

3.3 _clusterwide_global_transactions[편집]

enable/disable clusterwide global transactions FALSE 설정 Def. = TRUE

3.4 _complex_view_merging[편집]

enable complex view merging FALSE 설정 Def. = TRUE

Complex View란 Group By나 Distinct가 있는 뷰 또는 인라인 뷰를 말하며, Complex View Merging은 이러한 View를 해체하는 개념이다.

힌트로는 Merge / No_Merge를 사용하면 된다

3.5 _datafile_write_errors_crash_inst[편집]

ance datafile write errors always crash instance FALSE 설정 Def. = TRUE

3.6 _db_mttr_advice[편집]

MTTR advisory OFF 설정 Def. = ON

3.7 _diag_daemon[편집]

start DIAG daemon FALSE 설정 Def. = TRUE

3.8 _dump_rcvr_ipc[편집]

if TRUE enables IPC dump at instance eviction time FALSE 설정 Def. = TRUE

3.9 _enable_minscn_cr[편집]

  1. enable/disable minscn optimization for CR

FALSE 설정 Def. = TRUE

3.10 _gc_maximum_bids[편집]

maximum number of bids which can be prepared 4 설정 Def. = 0

3.11 _gc_policy_time[편집]

how often to make object policy decisions in minutes 0 설정 Def. = 10

3.12 _gc_undo_affinity[편집]

if TRUE, enable dynamic undo affinity FALSE 설정 Def. = TRUE

3.13 _in_memory_undo[편집]

Make in memory undo for top level transactions FALSE 설정 Def. = TRUE

3.14 _kgl_large_heap_warning_thresh[편집]

old maximum heap size before KGL writes warnings to the alert log 33554432 설정

3.15 _library_cache_advice[편집]

whether KGL advice should be turned on FALSE 설정 Def. = TRUE

3.16 _memory_imm_mode_without_a[편집]

utosga Allow immediate mode without sga/memory target FALSE 설정 Def. = TRUE

3.17 _nlj_batching_enabled[편집]

enable batching of the RHS IO in NLJ 0 설정 Def. = 1

3.18 _nlj_batching_misses_enabled[편집]

enable exceptions for buffer cache misses 0 설정 Def. = 1

3.19 _optimizer_adaptive_cursor_sharing[편집]

optimizer adaptive cursor sharing FALSE 설정 Def. = TRUE

3.20 _optimizer_extended_cursor_sharing[편집]

optimizer extended cursor sharing NONE 설정 Def. = UDO

3.21 _PX_use_large_pool[편집]

Use Large Pool as source of PX buffers TRUE 설정 Def. = FALSE

3.22 _row_cache_cursors[편집]

number of cached cursors for row cache management 1000 설정

Def. = 20

3.23 _smm_advice_enabled[편집]

if TRUE, enable v$pga_advice FALSE 설정 Def. = TRUE

3.24 _trace_files_public[편집]

Create publicly accessible trace files TRUE 설정 Def. = FALSE

3.25 _undo_autotune[편집]

enable auto tuning of undo_retention FALSE설정 Def. = TRUE

3.26 _db_block_hash_buckets[편집]

_db_block_hash_buckets은 db_block_buffers * 2가 Default이며 Buffer Cache에 Block을 Loading하기 위해

Oracle Block Address(DBA)에 대해 내부적인 Hash Function을 적용하여 각각의 Block을 Hash Bucket에서 관리하게 된다.

이때 SGA영역인 Hash Bucket에 대한 여러 Process들이 동시에 같은 Hash Bucket에 접근하려는 것을 막기 위해

db block hash latch들을 두고 관리되며, 이 Parameter에 의해 결정된다.

단 Parameter의 값이 2의 승수가 아닐경우는 설정된 값보다 큰 2의 승수가 설정된다.

Default로는 _db_block_hash_buckets/128이나 db_block_buffers가 4,096개 이하일 경우는

db_block_buffers/4로 내부적으로 계산된다.

_db_block_hash_buckets = 262144 ▶ 초기화 파라미터 파일에서 설정