블로그 이미지
010-9967-0955 보미아빠

카테고리

보미아빠, 석이 (500)
밥벌이 (16)
싸이클 (1)
일상 (1)
Total
Today
Yesterday

달력

« » 2016.4
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

공지사항

최근에 올라온 글

'2016/04/08'에 해당되는 글 1건

  1. 2016.04.08 jTDS vs MS JDBC

jTDS vs MS JDBC

카테고리 없음 / 2016. 4. 8. 11:14


1) call pattern 


jTDS 로 PreparedStatement 를 호출하면 sp_prepare sp_execute 를 호출한다. 

MS JDBC 는 sp_prepexec 로 위 두 단계를 하나로 줄여서 실행한다. 한마디로 서버 클라이언트간 round-trip 횟수를 줄여 성능을 높일 수 있다. connectionString 에 prepareSQL=2 라고 옵션을 주면 sp_executesql 로 동작해 한번에 돌릴 수 있고 parameter snipping 도 가능하다. 그런데, 이건 좀 다른 동작 방식이다. 항상 sql 이 날아가야 한다.  



2) parameter snipping


jTDS 로 PreparedStatement 를 사용하면 파라메터 스니핑을 사용하지 못하고 

JDBC 를 사용하면 파라메터 스니핑이 가능하다.....


그런데 감당하지 못하겠으면 SQL Server 레벨에서 disable 가능하다 


Parameter sniffing can be disabled using the documented and supported trace flag 4136. This trace flag is also supported for per-query use via the QUERYTRACEON hint. Both apply from SQL Server 2005 Service Pack 4 onward (and slightly earlier if you are willing to apply cumulative updates to Service Pack 3).



sql server 에서 파라메터 스니핑을 하는 경우(MS JDCB)



             <ParameterList>

              <ColumnReference Column="@P0" ParameterCompiledValue="(1)" ParameterRuntimeValue="(1)" />

            </ParameterList>





파라메터 스니핑을 못하는 경우 (jTDS)



             <ParameterList>

              <ColumnReference Column="@P0" ParameterRuntimeValue="(1)" />

            </ParameterList>



3) applicationIntent 기능을 MS JDBC 만 지원한다. 4.0 이상부터

고 가용성 기능을 쓰려면 JDBC 로 가야한다. 



기타)

unicode false 옵션은 주의해서 셋팅해라 


Posted by 보미아빠
, |

최근에 달린 댓글

최근에 받은 트랙백

글 보관함