sp_recompile(Transact-SQL)

 

이 항목은 다음에 적용됩니다.예SQL Server(2008부터 시작)예Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스

저장 프로시저, 트리거 및 사용자 정의 함수가 다음에 실행될 때 다시 컴파일되도록 합니다. 프로시저나 트리거가 다음에 실행될 때 기존 계획을 프로시저 캐시에서 삭제하고 새 계획이 생성되도록 하여 이 작업을 수행합니다. SQL Server 프로파일러 컬렉션에서는 SP:Recompile 이벤트 대신 SP:CacheInsert 이벤트가 로깅됩니다.

적용 대상: SQL Server (SQL Server 2008 ~ 현재 버전), Azure SQL 데이터베이스.

Topic link icon Transact-SQL 구문 표기 규칙

  
sp_recompile [ @objname = ] 'object'  

[ @objname= ] 'object'
현재 데이터베이스에 있는 저장 프로시저, 트리거, 테이블, 뷰 또는 사용자 정의 함수의 정규화된 이름 또는 정규화되지 않은 이름입니다. 개체nvarchar(776), 기본값은 없습니다. 경우 개체 컴파일됩니다 다음에 실행 되는 또는 저장 프로시저, 트리거 또는 사용자 정의 함수, 저장된 프로시저, 트리거에 이름입니다. 경우 개체 다음에 실행 되는 테이블 또는 뷰를 참조 하는 사용자 정의 함수는 다시 컴파일할 수 또는 테이블이 나 뷰의 모든 저장된 프로시저, 트리거의 이름입니다.

0(성공) 또는&0;이 아닌 수(실패)

sp_recompile은 현재 데이터베이스에서만 개체를 찾습니다.

저장 프로시저 또는 트리거 및 사용자 정의 함수에 사용되는 쿼리는 컴파일되는 경우에만 최적화됩니다. 데이터베이스에 통계에 영향을 주는 인덱스 또는 다른 변경 내용이 생기면 데이터베이스, 컴파일된 저장 프로시저, 트리거 및 사용자 정의 함수가 효율성을 잃을 수도 있습니다. 테이블에서 사용되는 저장 프로시저 및 트리거를 다시 컴파일하면 쿼리를 다시 최적화할 수 있습니다.

System_CAPS_ICON_note.jpg 참고


SQL Server는 자동으로 저장 프로시저, 트리거 및 사용자 정의 함수를 다시 컴파일하는 편이 좋은 경우 그렇게 합니다.

지정된 개체에 대한 ALTER 권한이 필요합니다.

다음 예에서는 Customer 테이블에 대해 수행되는 저장 프로시저, 트리거 및 사용자 정의 함수가 다음에 실행될 때 다시 컴파일되도록 합니다.

USE AdventureWorks2012;  
GO  
EXEC sp_recompile N'Sales.Customer';  
GO  

프로시저 (TRANSACT-SQL) 만들기
CREATE TRIGGER (TRANSACT-SQL)
시스템 저장 프로시저 (TRANSACT-SQL)

커뮤니티 추가 항목

추가
표시: