[SQL] 어떻게 / 죽일 즉시 긴 SQL 쿼리를 중지?
SQL어떻게 / 죽일 즉시 긴 SQL 쿼리를 중지?
저는 SQL 서버 2008의 관리 스튜디오를 사용하고 있습니다. 나는 많은 행을 산출하는 쿼리를 실행. 나는 빨간색 취소 버튼을 통해 취소하려고했으나 그것은 과거 10 분 동안 중지되지 않았습니다. 그것은 일반적으로 삼분 이내에 중지합니다.
이유는 무엇을 할 수 있고 어떻게 즉시 중지합니까?
해결법
-
==============================
1.취소 쿼리 A는 관심이 서버에 도달 할 수 있으며, 처리 할 것을 제공 즉각적인이다. 쿼리는 거의 항상 사실 당신이 전화 SQLCLR에서 웹 서비스와 같은 특정 작업을 수행하는 경우를 제외입니다 취소 가능한 상태에 있어야합니다. 서버에 도달 할 수 귀하의 관심은 스케줄러 과부하에 주로 기인합니다.
취소 쿼리 A는 관심이 서버에 도달 할 수 있으며, 처리 할 것을 제공 즉각적인이다. 쿼리는 거의 항상 사실 당신이 전화 SQLCLR에서 웹 서비스와 같은 특정 작업을 수행하는 경우를 제외입니다 취소 가능한 상태에 있어야합니다. 서버에 도달 할 수 귀하의 관심은 스케줄러 과부하에 주로 기인합니다.
하지만 당신의 쿼리가 중단 될 수 없습니다 롤백 다음 롤백합니다 트랜잭션의 일부인 경우. 이 10 분 걸린다면 다음 10 분을 필요로하고 당신이 그것에 대해 할 수있는 아무것도. 심지어 서버가 없습니다 도움 만 롤백을 완료해야 복구로 시작 이상 만들 것입니다 다시 시작.
귀하의 경우에 적용되는 구체적인 이유에 대답하기 위해, 당신은 자신을 조사해야합니다.
-
==============================
2.
sp_who2 'active'
CPUTIME 및 DiskIO에서 값을 확인합니다. 비교적 큰 값을 갖는 프로세스의 SPID를 참고.
kill {SPID value}
-
==============================
3.첫 번째 명령 아래 실행 :
첫 번째 명령 아래 실행 :
sp_who2
그 후 당신이 명령 위에서 가지고 SPID와 명령 아래를 실행합니다 :
KILL {SPID value}
-
==============================
4.이것은 바보 같은 대답의 일종이지만, 내 경우에는 적어도 안정적으로 작동합니다 : "취소 실행 쿼리"쿼리를 중지하지 않을 경우 관리 스튜디오에서, 난 그냥 현재 SQL 문서를 닫습니다. 내가 쿼리를 취소 할 경우 내가 네 말을 나에게 묻는다, 보라와 보라 몇 초에 실행이 중지됩니다. 내가 닫기 전에 문서를 저장하고 싶다면 그것은 나를 묻는 후. 이 시점에서 나는 열려있는 문서를 유지하고 작업을 계속하려면 취소를 클릭 할 수 있습니다. 어떤 무대 뒤에서 무슨 일이 일어나고 있는지 생각하지 않습니다, 그러나 그것은 작동하는 것 같다.
이것은 바보 같은 대답의 일종이지만, 내 경우에는 적어도 안정적으로 작동합니다 : "취소 실행 쿼리"쿼리를 중지하지 않을 경우 관리 스튜디오에서, 난 그냥 현재 SQL 문서를 닫습니다. 내가 쿼리를 취소 할 경우 내가 네 말을 나에게 묻는다, 보라와 보라 몇 초에 실행이 중지됩니다. 내가 닫기 전에 문서를 저장하고 싶다면 그것은 나를 묻는 후. 이 시점에서 나는 열려있는 문서를 유지하고 작업을 계속하려면 취소를 클릭 할 수 있습니다. 어떤 무대 뒤에서 무슨 일이 일어나고 있는지 생각하지 않습니다, 그러나 그것은 작동하는 것 같다.
-
==============================
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.당신은 쿼리 실행을 중지하려면 Alt + 브레이크 바로 가기 키보드를 사용할 수 있습니다. 그러나,이 모든 경우에 성공하지 못할 수 있습니다.
당신은 쿼리 실행을 중지하려면 Alt + 브레이크 바로 가기 키보드를 사용할 수 있습니다. 그러나,이 모든 경우에 성공하지 못할 수 있습니다.
-
==============================
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.
--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.나는 끝없이 실행하는 동안 닫습니다하려고 할 때 내 인생에서 내 SQL은 교수형. 그래서 내가 한 일은 내 작업 관리자 및 최종 작업 내 SQL 쿼리를 열 수 있습니다. 이것은 나의 SQL을 중지하고 다시 시작됩니다.
나는 끝없이 실행하는 동안 닫습니다하려고 할 때 내 인생에서 내 SQL은 교수형. 그래서 내가 한 일은 내 작업 관리자 및 최종 작업 내 SQL 쿼리를 열 수 있습니다. 이것은 나의 SQL을 중지하고 다시 시작됩니다.
-
==============================
10.빨간색 "중지"상자가 작동하지 않는 경우 간단한 대답은, 키보드의 "Ctrl 키 + 브레이크"버튼을 눌러 보는 것입니다.
빨간색 "중지"상자가 작동하지 않는 경우 간단한 대답은, 키보드의 "Ctrl 키 + 브레이크"버튼을 눌러 보는 것입니다.
당신이 리눅스에 SQL Server를 실행하는 경우, "killall는"라는 당신의 시스템 트레이에 추가 할 수있는 응용 프로그램이 있습니다 그냥 "killall는"버튼을 클릭 한 다음 루프에서 잡힌 프로그램을 클릭하고 프로그램을 종료합니다. 희망이 도움이.
-
==============================
11.나는 오랜 시간 이후 같은 일을 앓고 있었다. 당신이 (느린 수 있습니다) 원격 서버에 연결되어있을 때 특별히 발생, 또는 당신은 가난한 네트워크 연결이. 마이크로 소프트는 정답이 무엇인지 알고 있다면 나는 의심한다.
나는 오랜 시간 이후 같은 일을 앓고 있었다. 당신이 (느린 수 있습니다) 원격 서버에 연결되어있을 때 특별히 발생, 또는 당신은 가난한 네트워크 연결이. 마이크로 소프트는 정답이 무엇인지 알고 있다면 나는 의심한다.
그러나 나는 해결책을 찾기 위해 노력했습니다 때문이다. 만 1 개 평신도 접근 방식 일
"쿼리는 현재 실행한다. 쿼리를 취소 하시겠습니까?"
그리고 게시,있는 거 스튜디오 쿼리를 실행할 다시 안정 당신이 될 수있다.
무엇 백그라운드에서 수행하는 연결하여 쿼리 창을 분리합니다. 쿼리를 다시 실행 그래서, 다시 원격 서버를 연결하기위한 시간이 소요됩니다. 그러나이 트레이드 오프가 훨씬 더 영원을 위해 실행하는 타이머를 보는 고통보다 날 믿어.
PS : 나를 위해이 작품, 명예, 경우에 당신을위한 작품이 너무. !!!
from https://stackoverflow.com/questions/15921458/how-to-kill-stop-a-long-sql-query-immediately by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 데이터베이스 / SQL : 어떻게 위도 / 경도 데이터를 저장하는 방법? (0) | 2020.07.20 |
---|---|
[SQL] 어떻게 SQL을 통해 PostgreSQL 데이터베이스에 연결된 활성 사용자를받을 수 있나요? (0) | 2020.07.20 |
[SQL] 선택하고 하나의 검색어로 데이터베이스 레코드를 업데이트 (0) | 2020.07.20 |
[SQL] TSQL : 마지막 쿼리의 란을 받기 (0) | 2020.07.20 |
[SQL] 그것은 SQL 서버에 임시 테이블을 만들기위한 #을 사용할 필요가 있습니까? (0) | 2020.07.20 |