dynamic,static sql 을 구분
1. 우선 자신의 작성한 프로그램을 수행 합니다.
2. SELECT hash_value, piece, sql_text
FROM V$SQLTEXT
WHERE hash_value IN (SELECT
hash_value
FROM
V$SQLTEXT
WHERE sql_text like
'%프로그램내에기술된 테이블명%'
GROUP BY
hash_value)
GROUP BY hash_value, piece, sql_text
3.결과를 보고 조건절에 WHERE a = :a0 라고 되어 있는지 아니면 WHERE a = '1'
이런식으로 되어 있는지를 확인합니다.
이때 전자를 Static SQL 후자를 Literal SQL 이라고 합니다.
전자는 라이브러리 캐쉬를 공유 하므로 라이브러리 캐쉬에 Keep 을 하고 Parsing 하는데
어려움이 없지만 후자는 매번 메로리 Keep 과 Parsing 을 하게 되므로 성능에 치명 적입니다.
댓글 없음:
댓글 쓰기