성능:: 강제 매개변수화 Forced Parameterization
One of the main benefits of using a stored procedure to execute Transact-SQL code is that once a stored procedure is compiled and executed the first time, the query plan is cached by SQL Server. So the next time the same stored procedure is run (assuming the same connection parameters are used), SQL Server does not have to recompile the stored procedure again, instead reusing the query plan created during the first compilation of the stored procedure.
If the same stored procedure is called over and over again, with the query plan being reused each time, this can help reduce the burden on SQL Server's resources, boosting its overall performance.
그러나 application에서 SQL Server로 보내는 쿼리는 동적 쿼리도 존재한다. 이런 쿼리들은 매개 변수화 되지 않아서 재 사용이 이루어 지지 않는다.
ALTER DATABASE 문에서 PARAMETERIZATION 옵션을 FORCED로 설정하여 강제 매개 변스화를 설정하면 쿼리 컴파일 및 재 컴파일을 빈도를 줄여 특정 데이터베이스의 성능을 향상 시킬 수 있다.
이것을 설정하면 SELECT, INSERT, UPDATE, DELETE 문에 표시되는 리터럴 값이 쿼리 컴파일 중 매개변수로 변환된다.
다음 구문에 나타나는 리터럴은 예외이다.
WHERE T.col2 >= @bb
와 같은 변수를 참조하는 문
[code sql] ALTER DATABASE FORCED [/code]
참고:) http://msdn.microsoft.com/ko-kr/library/ms175037.aspx
'Peformance Tuning' 카테고리의 다른 글
read-ahead는 무었인가? (0) | 2009.12.03 |
---|---|
DeadLock 예제,재 실행하기 (0) | 2009.11.24 |
SQL서버 성능counter (0) | 2009.11.12 |
Lock::Trace Flag 1204 (0) | 2009.11.10 |