행위

오라클 바인드피크

DB CAFE

1 바인드 피킹

1.1 파라미터 확인

_optim_peek_user_binds

SELECT A.KSPPINM  NAME,
       B.KSPPSTVL VALUE,
       B.KSPPSTDF DEF_YN,
       A.KSPPDESC DESCRIPTION
FROM   X$KSPPI  A,
       X$KSPPSV B
WHERE  A.INDX = B.INDX
AND    LOWER(A.KSPPINM) LIKE '%' || TRIM(LOWER('_optim_peek_user_binds')) || '%'
ORDER  BY 1
;

1.2 세션레벨에서 변경

ALTER SESSION SET "_optim_peek_user_binds" = TRUE;

2 Adaptive Cursor

11g에서는 'Bind Peeking'의 단점을 보완하여 바인드 변수값에 따라 실행계획을 여러 개로 관리. 11g 에서는 쿼리가 실행될 때마다 캐시에 저장된 실행 계획을 무작정 실행하는 대신, 바인드 변수의 값이 변경되었을 때 실행 계획을 재작성해야 하는지의 여부를 판단하는 과정이 추가


파라미터 _OPTIMIZER_ADAPTIVE_CURSOR_SHARING

ALTER SYSTEM SET "_OPTIMIZER_ADAPTIVE_CURSOR_SHARING" = TRUE
ALTER SESSION SET "_OPTIMIZER_ADAPTIVE_CURSOR_SHARING" = TRUE