저는 바이올린을 좋아하는 엔지니어가 가득한 제조 환경에서 독학하는 DBA입니다. sysadmin이나 명시적인 추가 권한을 부여하지는 않았지만 일부 엔지니어에게는 'killer'쿼리를 실행하는 데 문제가 있습니다. 연결에 대한 기본 명령 시간 초과가 30 초인 것은 일반적으로 문제가되지 않지만이 엔지니어 중 일부는 자동 완성 기능을 위해 SQL Developer를 구입했습니다. 물론 기본적으로 이들을 무한 'CommandTimeout'과 연결합니다.새 세션 및 기존 세션 변경 명령 제한 시간 값
어떤 식 으로든/또는 새 연결/세션을 변경하고 CommandTimeout을 좀 더 합리적인 수준 (30 초 미만)으로 설정하는 것이 좋습니다. 새로운 연결을 위해 필자는 일종의 데이터베이스 트리거를 사용하여 해당 컨텍스트에서 명령을 실행합니다. 기존 연결, 아마도 시스템 테이블에 무언가 끔찍한가?
첫째, 감사합니다. 매우 감사. 저는 자원 관리에 대한 제안을 조사하기 시작했습니다. 지금까지도 여전히 재생 중이므로 자원 할당이 줄어들어 쿼리 시간이 확장된다는 것을 알았습니다. 쿼리는 여전히 실행되며, 더 오래 걸립니다 ... 또한 시간이 오래 걸리는 이유를 알려주지 않습니다. 설정된 실행 시간에 쿼리를 종료하는 방법을 아직 알지 못했습니다. –
나는 또한 보았다 : 1 ... 서버 로그온 트리거 : 실행 시점에 세션이 아직 존재하지 않기 때문에 작동하지 않는다. 2 ... 데이터베이스 트리거 : 아니요 LOGON 또는 SELECT 특성이 없습니다. 3 ... EXECUTE AS : 기존 세션을 첨부하거나 변경하지 않습니다. –
sys.dm_exec_requests.total_elapsed_time을 보면 알 수 있습니다. 쿼리가 실행 된 시간을 볼 수 있습니다. 이 경우 내가 실행할 수있는 스크립트가 있는데, 특정 시간이 지나면 문제가되는 SPID가 '죽을'수 있습니다. 소리는 들리지만 세션이 종료되므로 클라이언트 소프트웨어에 대한 모든 관심이이를 처리하고 다시 연결되지만 여전히 세션이 종료 된 이유에 대한 정보는 없습니다. 아마도 세션을 죽이는 대신 쿼리를 중단하는 방법이 있을까요? –