none
[Tip] SQL Server 프로파일러의 SP:StmtCompleted 이벤트로 Prepare 쿼리 알아내기 RRS feed

  • 질문

  • 소개
    일부 JDBC 드라이버를 포함한 특정 Database API를 통해서 매개변수(Parameterized) 쿼리를 사용할 때 sp_prepare와 sp_execute의 쌍으로 처리하는 방법으로 개발되는 경우가 있습니다. 이 때 sp_execute가 반복 호출되는 경우 실제 실행 쿼리를 확인하기 어려울 때가 있습니다.

    SQL Server DBA를 포함한 성능 관리 담당자로서 SQL Server 프로파일러를 이용하여 고부하 쿼리를 식별하거나 혹은 수집하고자 할 때, 아래 그림과 같이 sp_execute 프로시저와 매개변수 값만 나타나고 실제 쿼리는 보이지 않습니다.

      (아래 그림-1 참조)

    

    이 때 SP:StmtCompleted 이벤트를 추적 대상으로 추가 수집하게 되면 해당 쿼리도 함께 확인할 수 있습니다.

    참고 사항
    sp_prepare/sp_execute로 실제 쿼리를 실행하는 것은 아래 Step에서 생략합니다.

    방법
    1) SQL Server 프로파일러에서 추적하고 싶은 다른 이벤트와 함께 [SP:StmtCompleted] 이벤트를 추가 선택하고 추적을 시작합니다.
       (아래 그림-2 참조)

    2) sp_prepare/sp_execute 방식으로 실행되는 쿼리를 응용 프로그램을 통하거나 기타 방법으로 실행하면 아래와 같이 추적 결과에서 해당 쿼리를 확인할 수 있습니다.
      (아래 그림-3 참조)

    
    
    

    Best Regards, Jungsun Kim


    2012년 5월 8일 화요일 오전 6:54
    중재자

모든 응답