'JDBC 드라이버에서 날리는 쿼리'에 해당되는 글 1건
- 2010.07.09 JDBC 드라이버에서 날리는 쿼리 확인 - SQL Server
- JDBC 드라이버에서 날리는 쿼리 확인 - SQL Server
- 日常茶飯事
- 2010. 7. 9. 05:24
JDBC 프로그램에서 쿼리를 날렸을 때 DBCC INPUTBUFFER spid 의 결과
- Profiler를 이용하면 쿼리와 매개변수까지 확인 가능함.
- sqljdbc.jar - 569KB (583,286 바이트) 사용, SQL Server 2005
DriverManager.getConnection()
Connection#setAutoCommit(false)
Statement#executeQuery()
PreparedStatement#executeQuery()
CallableStatement#executeQuery()
SYSPROCESSES에서 program_name을 확인할 수 없음.
- jtds-1.2.2 사용, SQL Server 2005
DriverManager.getConnection()
Connection#setAutoCommit(false)
Statement#executeQuery()
PreparedStatement#executeQuery()
CallableStatement#executeQuery()
SYSPROCESSES에서 program_name이 jTDS로 확인됨.
- 연결된 서버를 통한 4파트 쿼리나 Openquery도 위와 동일함.
모두 Language Event 이다.
- auto commit이 false면 opentran 1, 그러나 락은 안보임
- sqljdbc.jar - 569KB (583,286 바이트) 사용, SQL Server 2000
커넥션 붙는 부분 위와 동일
CallableStatement, PreparedStatement#executeQuery()
- jtds-1.2.2 사용, SQL Server 2000
CallableStatement#executeQuery()
PreparedStatement#executeQuery()
- 2005에서 실행된 쿼리를 볼 때 이 쿼리를 이용한다.
- 연결된 서버
처음 접속한 서버(2005)는 일반적인 커넥션과 동일하고, 연결된 원격의 서버(2000)에서 확인해보면 다음과 같은 특징을 가진다.
sp_who
sysprocesses에서 hostname이 DBS2005 이고 program_name이 Microsoft SQL Server 이다.
dbcc inputbuffer (58)
- Profiler를 이용하면 쿼리와 매개변수까지 확인 가능함.
- sqljdbc.jar - 569KB (583,286 바이트) 사용, SQL Server 2005
DriverManager.getConnection()
Language Event 0 set transaction isolation level read committed set implicit_transactions off
Connection#setAutoCommit(false)
Language Event 0 set implicit_transactions on
Statement#executeQuery()
Language Event 0 SELECT top 2 * FROM TB_SAMPLE
PreparedStatement#executeQuery()
Language Event 0 set transaction isolation level read committed set implicit_transactions off //실행시킨 쿼리문을 확인할 수 없음, getConnection() 호출시 남아 있던 문장
CallableStatement#executeQuery()
//상동
SYSPROCESSES에서 program_name을 확인할 수 없음.
- jtds-1.2.2 사용, SQL Server 2005
DriverManager.getConnection()
Language Event 0 SELECT @@MAX_PRECISION SET TRANSACTION ISOLATION LEVEL READ COMMITTED SET IMPLICIT_TRANSACTIONS OFF SET QUOTED_IDENTIFIER ON SET TEXTSIZE 2147483647
Connection#setAutoCommit(false)
Language Event 0 SET IMPLICIT_TRANSACTIONS ON
Statement#executeQuery()
Language Event 0 SELECT top 2 * FROM TB_SAMPLE
PreparedStatement#executeQuery()
Language Event 0 (@P0 nvarchar(4000))SELECT top 2 * FROM TB_SAMPLE WHERE key = @P0
CallableStatement#executeQuery()
RPC Event 0 DB123.dbo.pr_test;1
SYSPROCESSES에서 program_name이 jTDS로 확인됨.
- 연결된 서버를 통한 4파트 쿼리나 Openquery도 위와 동일함.
모두 Language Event 이다.
- auto commit이 false면 opentran 1, 그러나 락은 안보임
- sqljdbc.jar - 569KB (583,286 바이트) 사용, SQL Server 2000
커넥션 붙는 부분 위와 동일
CallableStatement, PreparedStatement#executeQuery()
RPC Event 0 sp_prepexec;1
- jtds-1.2.2 사용, SQL Server 2000
CallableStatement#executeQuery()
RPC Event 0 PR_test;1
PreparedStatement#executeQuery()
RPC Event 0 sp_execute;1
- 2005에서 실행된 쿼리를 볼 때 이 쿼리를 이용한다.
- 연결된 서버
처음 접속한 서버(2005)는 일반적인 커넥션과 동일하고, 연결된 원격의 서버(2000)에서 확인해보면 다음과 같은 특징을 가진다.
sp_who
spid ecid status loginame hostname blk dbname
58 0 dormant test_user DBS2005 0 NULL
58 0 dormant test_user DBS2005 0 NULL
sysprocesses에서 hostname이 DBS2005 이고 program_name이 Microsoft SQL Server 이다.
dbcc inputbuffer (58)
RPC Event 0 sp_reset_connection;1
Recent comment