none
MS SQL CPU 사용량 높은 Transaction 확인 RRS feed

답변


  •  
     
     

    안녕하십니까? 김도남 님

    Microsoft TechNet Forum 사이트를 방문해 주셔서 감사합니다.

     

    문의 하신 “MS SQL CPU 사용량 높은  Transaction 확인에 대한 답변을 드리겠습니다.

     

    Step 1 : Process

     

    1.     Ctrl + Shift + ESC or Windows 하단에 작업표시줄을 우 클릭 후 Task Manager를 실행합니다.

     

    2.     Process 탭으로 이동 후  sqlservr.exe 프로세스의 CPU사용량을 확인 합니다.


     

     

    Step 2 : Perfmon

     

    1.     시작 -> 실행 -> perfmon을 입력 후 실행합니다.

    2.     좌측 패널에서 Monitoring Tools -> Performance Monitor 노드를 선택을 합니다.

     

    3.     우측 패널에서 우 클릭 후 Add Counters를 실행을 합니다.

     

    4.     좌측 하단에 있는 콤보박스를 All Instance를 선택 합니다.

     

    5.     바로 옆에 있는 Search 버튼을 클릭 한 후 sqlservr/?? 형식의 Instance를 다 선택을 합니다.

     

    6.     좌측 패널에서 Thread를 확장하고 좌측에 위 섹션에서 %Process Time, ID Thread를 선택 한후 Add>> 버튼을 클릭을 합니다.

     

    7.     서버에 부하가되는 쿼리를 실행 한후 ID %Processsor Time이 높은 Thread ID값을 확인을 합니다.

     

     

     

    Step 3 : KPID

    위에서 확인 한 값을 이용해서 sysprocesses 테이블에 spid정보를 얻기 위해 쿼리를 합니다.

     

    SELECT spid, kpid, dbid, cpu, memusage FROM sysprocesses WHERE kpid=4532

     

     

     

    Step 4 : SPID

     

    이 스레드에 Transaction이 얼마나 설정되어 있는지 확인합니다.

     

    SELECT spid, kpid, status, cpu, memusage, open_tran, dbid FROM sysprocesses WHERE spid=53

     

     

    Step 5 : DBCC

                

    이 쓰레드가 작업하는 내역을 확인을 합니다.

     

    dbcc inputbuffer(53)

     

     

    참고 자료

     

    sys.sysprocesses (Transact-SQL)

    http://msdn.microsoft.com/en-us/library/ms179881.aspx

     

    DBCC INPUTBUFFER(Transact-SQL)

    http://technet.microsoft.com/ko-kr/library/ms187730.aspx

     

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.

    제시해 드린 답변이 도움이 되었기를 바랍니다.

    • 답변으로 표시됨 김도남 2011년 11월 3일 목요일 오전 7:51
    2011년 10월 31일 월요일 오전 9:35
    중재자