none
MS SQL Server 에서 Roll Back Process 진행 상황 RRS feed

답변

  • 안녕하십니까? 김도남 님

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

     

    문의 하신 “MS SQL Server 에서 Roll Back Process 진행 상황에 대한 답변을 드리겠습니다.

     

     

    Step 1 : PID 확인

     

    현재 Process 의 세션 ID 정보를 제공을 합니다.

     

    select @@SPID

     

     

    데이터베이스 엔진 인스턴스의 현재 사용자, 세션 및 프로세스에 대한 정보를 제공합니다. 유휴 상태가 아닌 프로세스, 특정 사용자에게 속한 프로세스 또는 특정 세션에 속하는 프로세스만 반환하도록 이 정보를 필터링할 수 있습니다.

     

    exec sp_who2

     

     

     

    Step 2 : 작업 예제 Script

     

    아래의 Script는 테이블 생성 후 Insert작업을 합니다.

     

    create table test1 (column1 int identity)

     

    begin tran tran1

     

    while (1 = 1)

    begin

           insert test1 default values

           if SCOPE_IDENTITY() > 99999

                 break;

    end

    dbcc opentran(0)

     

     

    Step 3 : Roll Back 진행률

     

    With StatusOnly 옵션을 이용해서 현재 Roll back 작업 진행률의 정보를 제공할 수 있습니다.

     

    kill 51 with statusonly

     

    SPID 51: 트랜잭션 롤백이 진행 중입니다. 예상 롤백 완료율: 80%. 남은 예상 시간: 0.

     

    참고 자료

     

    sp_who(Transact-SQL)

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

     

    @@SPID (Transact-SQL)

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

     

    KILL (Transact-SQL)

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

     

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

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

    • 답변으로 표시됨 김도남 2012년 1월 2일 월요일 오전 1:14
    2011년 12월 27일 화요일 오전 2:57
    중재자

모든 응답

  • 안녕하십니까? 김도남 님

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

     

    문의 하신 “MS SQL Server 에서 Roll Back Process 진행 상황에 대한 답변을 드리겠습니다.

     

     

    Step 1 : PID 확인

     

    현재 Process 의 세션 ID 정보를 제공을 합니다.

     

    select @@SPID

     

     

    데이터베이스 엔진 인스턴스의 현재 사용자, 세션 및 프로세스에 대한 정보를 제공합니다. 유휴 상태가 아닌 프로세스, 특정 사용자에게 속한 프로세스 또는 특정 세션에 속하는 프로세스만 반환하도록 이 정보를 필터링할 수 있습니다.

     

    exec sp_who2

     

     

     

    Step 2 : 작업 예제 Script

     

    아래의 Script는 테이블 생성 후 Insert작업을 합니다.

     

    create table test1 (column1 int identity)

     

    begin tran tran1

     

    while (1 = 1)

    begin

           insert test1 default values

           if SCOPE_IDENTITY() > 99999

                 break;

    end

    dbcc opentran(0)

     

     

    Step 3 : Roll Back 진행률

     

    With StatusOnly 옵션을 이용해서 현재 Roll back 작업 진행률의 정보를 제공할 수 있습니다.

     

    kill 51 with statusonly

     

    SPID 51: 트랜잭션 롤백이 진행 중입니다. 예상 롤백 완료율: 80%. 남은 예상 시간: 0.

     

    참고 자료

     

    sp_who(Transact-SQL)

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

     

    @@SPID (Transact-SQL)

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

     

    KILL (Transact-SQL)

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

     

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

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

    • 답변으로 표시됨 김도남 2012년 1월 2일 월요일 오전 1:14
    2011년 12월 27일 화요일 오전 2:57
    중재자
  • 도남님 오랜만이에요^^

    정확하게 롤백과 관련해서 어떤 것이 궁금하신 것이죠?

    특정 세션에 대한 롤백? 아님 서비스 재시작 때 발생하는 롤백처리절차?

    궁금하신 내용을 조금만 더 구체적으로 주셔요

     

    세션을 KILL 한 경우엔 KILL () WITH STATUSONLY 라는 옵션을 통해 현재 얼만큼 롤백이 진행되었는지 확인할 수 있습니다.

    감사합니다.


    Best Regards, Daejoong Samuel Sung Microsoft SQL Server MVP, MCP Consultant @ SQLRoad.COM
    2012년 1월 4일 수요일 오전 5:59
    중재자