저장 프로시저 자동 실행

자동 실행되도록 표시된 저장 프로시저는 SQL Server가 시작될 때마다 실행됩니다. 이 기능은 정기적으로 실행할 작업이 있거나 백그라운드 프로세스로 실행되면서 항상 실행될 것으로 예상되는 저장 프로시저가 있는 경우 유용합니다. 또는 저장 프로시저가 전역 임시 테이블을 만드는 작업처럼 tempdb에서 시스템 또는 유지 관리 태스크를 수행하도록 하는 것이 저장 프로시저 자동 실행을 사용하는 또 다른 방법입니다. 이렇게 하면 SQL Server가 시작되어 tempdb가 다시 만들어질 때 이러한 임시 테이블이 항상 존재합니다.

자동 실행되는 저장 프로시저는 sysadmin 고정 서버 역할의 멤버와 같은 권한을 사용하여 작동합니다. 저장 프로시저에서 생성되는 오류 메시지는 SQL Server 오류 로그에 기록됩니다. 자동 실행되는 저장 프로시저의 결과 집합은 반환하지 마십시오. 저장 프로시저는 사용자가 아닌 SQL Server에 의해 실행되므로 결과 집합을 반환할 대상이 없습니다.

시작할 때 master 데이터베이스가 복구되면 저장 프로시저의 실행이 시작됩니다.

자동 실행 설정, 해제 및 제어

시스템 관리자(SA)만 저장 프로시저가 자동 실행되도록 표시할 수 있습니다. 또한 저장 프로시저는 master 데이터베이스에 있고 sa에 의해 소유되어야 하며 입력 또는 출력 매개 변수를 가질 수 없습니다.

sp_procoption을 사용하여 다음을 수행할 수 있습니다.

  • 기존 저장 프로시저를 시작 프로시저로 지정합니다.

  • SQL Server를 시작할 때 프로시저가 실행되지 않도록 합니다.

저장 프로시저가 개별적으로 자동 실행되도록 설정되지만 sp_configure를 사용하여 SQL Serverscan for startup procs 구성 옵션을 설정하면 SQL Server가 시작될 때 모든 저장 프로시저가 자동으로 실행되지 않도록 할 수 있습니다. 이러한 저장 프로시저의 실행을 건너뛰려면 추적 플래그 4022를 시작 매개 변수로 지정합니다. -f 플래그를 사용하여 최소 구성으로 SQL Server를 시작하면 시작 저장 프로시저는 실행되지 않습니다. 자세한 내용은 추적 플래그를 참조하십시오.

최상의 방법

시작 프로시저의 개수에는 제한이 없지만 각 시작 프로시저는 실행하는 동안 하나의 작업자 스레드를 소비합니다. 따라서 시작할 때 여러 프로시저를 실행해야 하지만 동시에 실행할 필요가 없다면 한 프로시저만 시작 프로시저로 지정하고 그 프로시저에서 다른 프로시저를 호출하도록 만듭니다. 이렇게 하면 하나의 작업자 스레드만 사용됩니다.

저장 프로시저 자동 실행을 설정 또는 해제하려면

scan for startup procs 구성 옵션을 설정 또는 해제하려면

참고 항목

개념