2010년 5월 31일 월요일

dynamic,static sql 구분하다

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 을 하게 되므로 성능에 치명 적입니다.

댓글 없음:

댓글 쓰기