복붙노트

[SQL] 어떻게 / 죽일 즉시 긴 SQL 쿼리를 중지?

SQL

어떻게 / 죽일 즉시 긴 SQL 쿼리를 중지?

저는 SQL 서버 2008의 관리 스튜디오를 사용하고 있습니다. 나는 많은 행을 산출하는 쿼리를 실행. 나는 빨간색 취소 버튼을 통해 취소하려고했으나 그것은 과거 10 분 동안 중지되지 않았습니다. 그것은 일반적으로 삼분 이내에 중지합니다.

이유는 무엇을 할 수 있고 어떻게 즉시 중지합니까?

해결법

  1. ==============================

    1.취소 쿼리 A는 관심이 서버에 도달 할 수 있으며, 처리 할 것을 제공 즉각적인이다. 쿼리는 거의 항상 사실 당신이 전화 SQLCLR에서 웹 서비스와 같은 특정 작업을 수행하는 경우를 제외입니다 취소 가능한 상태에 있어야합니다. 서버에 도달 할 수 귀하의 관심은 스케줄러 과부하에 주로 기인합니다.

    취소 쿼리 A는 관심이 서버에 도달 할 수 있으며, 처리 할 것을 제공 즉각적인이다. 쿼리는 거의 항상 사실 당신이 전화 SQLCLR에서 웹 서비스와 같은 특정 작업을 수행하는 경우를 제외입니다 취소 가능한 상태에 있어야합니다. 서버에 도달 할 수 귀하의 관심은 스케줄러 과부하에 주로 기인합니다.

    하지만 당신의 쿼리가 중단 될 수 없습니다 롤백 다음 롤백합니다 트랜잭션의 일부인 경우. 이 10 분 걸린다면 다음 10 분을 필요로하고 당신이 그것에 대해 할 수있는 아무것도. 심지어 서버가 없습니다 도움 만 롤백을 완료해야 복구로 시작 이상 만들 것입니다 다시 시작.

    귀하의 경우에 적용되는 구체적인 이유에 대답하기 위해, 당신은 자신을 조사해야합니다.

  2. ==============================

    2.

    sp_who2 'active'
    

    CPUTIME 및 DiskIO에서 값을 확인합니다. 비교적 큰 값을 갖는 프로세스의 SPID를 참고.

    kill {SPID value}
    
  3. ==============================

    3.첫 번째 명령 아래 실행 :

    첫 번째 명령 아래 실행 :

    sp_who2
    

    그 후 당신이 명령 위에서 가지고 SPID와 명령 아래를 실행합니다 :

    KILL {SPID value}
    
  4. ==============================

    4.이것은 바보 같은 대답의 일종이지만, 내 경우에는 적어도 안정적으로 작동합니다 : "취소 실행 쿼리"쿼리를 중지하지 않을 경우 관리 스튜디오에서, 난 그냥 현재 SQL 문서를 닫습니다. 내가 쿼리를 취소 할 경우 내가 네 말을 나에게 묻는다, 보라와 보라 몇 초에 실행이 중지됩니다. 내가 닫기 전에 문서를 저장하고 싶다면 그것은 나를 묻는 후. 이 시점에서 나는 열려있는 문서를 유지하고 작업을 계속하려면 취소를 클릭 할 수 있습니다. 어떤 무대 뒤에서 무슨 일이 일어나고 있는지 생각하지 않습니다, 그러나 그것은 작동하는 것 같다.

    이것은 바보 같은 대답의 일종이지만, 내 경우에는 적어도 안정적으로 작동합니다 : "취소 실행 쿼리"쿼리를 중지하지 않을 경우 관리 스튜디오에서, 난 그냥 현재 SQL 문서를 닫습니다. 내가 쿼리를 취소 할 경우 내가 네 말을 나에게 묻는다, 보라와 보라 몇 초에 실행이 중지됩니다. 내가 닫기 전에 문서를 저장하고 싶다면 그것은 나를 묻는 후. 이 시점에서 나는 열려있는 문서를 유지하고 작업을 계속하려면 취소를 클릭 할 수 있습니다. 어떤 무대 뒤에서 무슨 일이 일어나고 있는지 생각하지 않습니다, 그러나 그것은 작동하는 것 같다.

  5. ==============================

    5.당신은 취소하고 그 실행을 참조하는 경우

    당신은 취소하고 그 실행을 참조하는 경우

     sp_who2 'active'
    

    (활동 모니터 참고로 기존의 SQL Server 2000에서 사용할 수 없습니다)

    당신은 예를 죽일하고자하는 SPID를 스팟 (81)

    Kill 81
    

    다시 '활성'을 sp_who2를 실행하고 당신은 아마 자고 ... 롤백을 알 수 있습니다

    상태가 KILL 다시 실행하려면

    Kill 81 
    

    그럼 당신은이 같은 메시지를 받게됩니다

     SPID 81: transaction rollback in progress. Estimated rollback completion: 63%. Estimated time remaining: 992 seconds.
    
  6. ==============================

    6.당신은 쿼리 실행을 중지하려면 Alt + 브레이크 바로 가기 키보드를 사용할 수 있습니다. 그러나,이 모든 경우에 성공하지 못할 수 있습니다.

    당신은 쿼리 실행을 중지하려면 Alt + 브레이크 바로 가기 키보드를 사용할 수 있습니다. 그러나,이 모든 경우에 성공하지 못할 수 있습니다.

  7. ==============================

    7.분명히 IIS에서 장기 실행 쿼리와 SQL 서버 2008 R2 64 비트에 킬 (kill) SPID 쿼리는 다시 다시 다시 시작됩니다, 작동하지 않습니다. 그리고 그것은 SPID의 재사용 것으로 보인다. 쿼리는 SQL 서버가 지속적으로 35 %의 CPU처럼 받아 웹 사이트를 중지하는 원인이된다. 나는 BC은 /는 로깅을 위해 다른 쿼리에 응답 할 수 없습니다 같은데요

    분명히 IIS에서 장기 실행 쿼리와 SQL 서버 2008 R2 64 비트에 킬 (kill) SPID 쿼리는 다시 다시 다시 시작됩니다, 작동하지 않습니다. 그리고 그것은 SPID의 재사용 것으로 보인다. 쿼리는 SQL 서버가 지속적으로 35 %의 CPU처럼 받아 웹 사이트를 중지하는 원인이된다. 나는 BC은 /는 로깅을 위해 다른 쿼리에 응답 할 수 없습니다 같은데요

  8. ==============================

    8.

    --Find Session Id for respective all running queries
    SELECT text, getdate(),*
     FROM sys.dm_exec_requests
    CROSS APPLY sys.dm_exec_sql_text(sql_handle)
    
    ---Kill specific session
    kill 125
    
  9. ==============================

    9.나는 끝없이 실행하는 동안 닫습니다하려고 할 때 내 인생에서 내 SQL은 교수형. 그래서 내가 한 일은 내 작업 관리자 및 최종 작업 내 SQL 쿼리를 열 수 있습니다. 이것은 나의 SQL을 중지하고 다시 시작됩니다.

    나는 끝없이 실행하는 동안 닫습니다하려고 할 때 내 인생에서 내 SQL은 교수형. 그래서 내가 한 일은 내 작업 관리자 및 최종 작업 내 SQL 쿼리를 열 수 있습니다. 이것은 나의 SQL을 중지하고 다시 시작됩니다.

  10. ==============================

    10.빨간색 "중지"상자가 작동하지 않는 경우 간단한 대답은, 키보드의 "Ctrl 키 + 브레이크"버튼을 눌러 보는 것입니다.

    빨간색 "중지"상자가 작동하지 않는 경우 간단한 대답은, 키보드의 "Ctrl 키 + 브레이크"버튼을 눌러 보는 것입니다.

    당신이 리눅스에 SQL Server를 실행하는 경우, "killall는"라는 당신의 시스템 트레이에 추가 할 수있는 응용 프로그램이 있습니다 그냥 "killall는"버튼을 클릭 한 다음 루프에서 잡힌 프로그램을 클릭하고 프로그램을 종료합니다. 희망이 도움이.

  11. ==============================

    11.나는 오랜 시간 이후 같은 일을 앓고 있었다. 당신이 (느린 수 있습니다) 원격 서버에 연결되어있을 때 특별히 발생, 또는 당신은 가난한 네트워크 연결이. 마이크로 소프트는 정답이 무엇인지 알고 있다면 나는 의심한다.

    나는 오랜 시간 이후 같은 일을 앓고 있었다. 당신이 (느린 수 있습니다) 원격 서버에 연결되어있을 때 특별히 발생, 또는 당신은 가난한 네트워크 연결이. 마이크로 소프트는 정답이 무엇인지 알고 있다면 나는 의심한다.

    그러나 나는 해결책을 찾기 위해 노력했습니다 때문이다. 만 1 개 평신도 접근 방식 일

    "쿼리는 현재 실행한다. 쿼리를 취소 하시겠습니까?"

    그리고 게시,있는 거 스튜디오 쿼리를 실행할 다시 안정 당신이 될 수있다.

    무엇 백그라운드에서 수행하는 연결하여 쿼리 창을 분리합니다. 쿼리를 다시 실행 그래서, 다시 원격 서버를 연결하기위한 시간이 소요됩니다. 그러나이 트레이드 오프가 훨씬 더 영원을 위해 실행하는 타이머를 보는 고통보다 날 믿어.

    PS : 나를 위해이 작품, 명예, 경우에 당신을위한 작품이 너무. !!!

  12. from https://stackoverflow.com/questions/15921458/how-to-kill-stop-a-long-sql-query-immediately by cc-by-sa and MIT license