SQL Server/SQL Server Tip

SQL Version에 따른 sp_prepare 정보 반환

SungWookKang 2015. 7. 22. 10:27
반응형

SQL Version에 따른 sp_prepare 정보 반환

 

  • Version : SQL Server 2008R2, 2012

 

SQL Server의 시스템 저장 프로시저인 sp_prepare는 매개 변수가 있는 T-SQL문을 준비하고 실행을 위해 핸들을 반환하는 기능을 한다. SQL Server Version에 따라 반환되는 정보가 어떻게 다른지 알아 보자.

 

[단일 문 일괄처리에 대한 메타데이터 반환]

아래 표는 sp_prepare 문을 포함하는 일괄 처리에 대한 메타데이터를 반환 여부를 나타낸다.

 

  • SQL Server 2012 이전 버전에서도 사용자에게 sp_prepare 메타데이터를 반환한다. 이것은 내부적으로 FMTONLY ON 문을 설정하고 실행하여 구현되었다.
  • 클라이언트 버전 2012 이상이면 SQL 2012 RTM 및 SP1에서 sp_prepare는 메타데이터를 반환하지 않는다. FMTONLY ON이 설정되지 않으며 이전 호환성 (클라이언트 2008) 클라이언트에만 사용된다.
  • 일괄 처리가 하나의 문이 포함되어 있는 경우 SQL 2012 CU6(Build 11.0.2401.0) 및 SP1 CU3 이상에서는 사용자에게 메타데이터를 반환한다. (성능 문제의 핫픽스 참고 : http://support.microsoft.com/kb/2772525)

 

 

[다중 문 일괄처리에 대한 메타데이터 반환]

declare @p1 int

 

set @p1=NULL

 

exec sp_prepare @p1 output,NULL,N'select * from sys.objects; select 1;',1

 

select @p1

 

 

아래 표는 다중 문 일괄처리에 대한 메타데이터 반환 여부를 나타낸다.

 

 

[참고자료]

http://blogs.msdn.com/b/psssql/archive/2013/07/23/when-does-sp-prepare-return-metadata.aspx

http://support.microsoft.com/kb/2772525

http://msdn.microsoft.com/ko-kr/library/ff848808.aspx

 

 

 

2013-07-26 / 강성욱 / http://sqlmvp.kr

 

 

 

반응형