본문 바로가기

BIND

ORACLE 10g Finding Bind Values v1.0 ORACLE 10g Finding Bind Values from 1. Bind Values Bind 값은 Query 수행시 사용되는 변수를 의미한다. Query 안에는 :bind_name 으로 표현된다. Bind 변수를 사용하는 이유는 Cursor 공유를 위해서이다. Cursor 를 공유한다는 것은 Hard Parsing 을 최소화 한다는 것이다. 이를 최소화 함으로써 얻을 수 있는 효과는 CPU Times 과 Memory 공간의 절약 (Library Cache) 과 메모리 단편화를 최소화할 수 있다. 반대로 단점(?) 도 있는데 Literal (실제값) 을 사용시 해당 값에 대한 정확한 통계정보 (이를테면 히스토그램) 를 사용해 최적의 실행플랜을 만들어 낼 수 있으나 Bind 변수를 사용하면 이를 이용.. 더보기
ORACLE _optim_peek_user_bind v1.0 ORACLE _optim_peek_user_bind from 1. _optim_peek_user_binds _optim_peek_user_binds (이하 ‘파라미터’ 라고 부르겠음) 는 바인드변수를 사용했을 때 실값을 가지고 실행플랜을 만들기 위해 사용된다. 다시말해 바인드변수를 사용한 SQL 이 들어왔을 때 해당 변수에 들어온 실값을 들여다 보고 실행계획을 만들겠다는 것이며 이를 통해 이와 비슷한 유형의 실값이 후에도 들어올 것이라 기대한다. 2. _optim_peek_user_binds 조회 A. SQL> / NAME SESMOD SYSMOD DESCRIPTION ------------------------------ ---------- ------------------ ---------------.. 더보기
ORACLE 10g v$sql_bind_capture v1.0 ORACLE 10g v$sql_bind_capture from 1. v$sql_bind_capture bind value hard parse 를 피하기 위한 기법의 하나이다. 이 변수에 들어오는 값들은 처음에 hard parse 된 정보를 가지고 soft parse 하게 된다. 9i 까지는 bind 변수에 들어오는 실값을 보기 위해서는 sql_trace 라던가 set events 를 통해 trace 해야 했다. 물론 v$sql_bind_data 나 v$sql_bind_metadata 와 같은 view 들이 있지만 실값을 표현해 주진 않는다. 이런 필요를 충족시켜주는 것이 v$sql_bind_capture view 이다. 주요용도는 bind 변수를 사용한 쿼리를 trace 하기 위해 임시변통으로 넘는 경우.. 더보기