BLOG ARTICLE 악성플랜 | 1 ARTICLE FOUND

  1. 2008/04/23 Oracle Thin XA Driver 사용시 Oracle SQL이 악성 플랜으로 바뀌는 경우

사용자 삽입 이미지
With 문법 사용시 XA 접속시와 non-XA 접속시에 동일한 SQL에 대하여 상이한 PLAN이 생성되는 현상이 발생합니다. SQL*Plus, Orange, Toad 등에서 SQL를 실행하면 정상적으로 구동이 되나 JDBC Thin driver를 이용하여 DB 접속 후, 해당 SQL 수행시 TEMP TABLE TRANSFORMATION 이 발생하지 않으면서, SQL 수행시간이 오래 걸리는 현상이 발생합니다.

6810244.993 (SCL) : 10203오라클과 웹로직 WAS 사이에 JDBC THIN XA드라이버를 사용시 플랜정보가 변경 됩니다.
6811922.993 (CUS) : 특정 쿼리 수행시 CPU SPIN 발생
18743048.6 (CUS) : global SR

원인은 다음과 같습니다.
With 문장을 사용시에는 내부적으로 global temproary table을 생성하여 사용합니다. 따라서 PLAN 정보에는 TEMP TABLE TRANSFORMATION 라는 Operation이 포함됩니다.
global temporary table은 Distributed transactions을 지원하지 않기 때문에 XA 환경하에서는 temporary table을 사용하지 않는 형식으로 PLAN으로 수행되는 것입니다.

 XA모드에서는 해당 내부테이블이 존재하지 않으므로 결국 플랜이 바뀌는 현상이 발생한 것이라고 하네요.

http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_7002.htm#i2095331

크리에이티브 커먼즈 라이센스
Creative Commons License
2008/04/23 10:58 2008/04/23 10:58