I는 MS SQL Server 2008에 문제에 직면하고있어보다 매개 변수와 함께 오래 걸립니다 빨리하지만 대신 문자열 매개 변수를 사용하면 쿼리가 더 오래 걸립니다!
상수 문자열 쿼리는 1 초가 걸리지 만 다른 쿼리는 11 초가 걸립니다.SQL Server 쿼리는 상수 문자열
상수 문자열 (1 초) :
SELECT *
FROM VIEWCONTENTS
WHERE COUNTRY = 'ZA'
AND CONTENTTYPE = 'A'
AND TASK = 'R23562';
매개 변수화 (11초)이 수율 무엇
DECLARE @country AS CHAR(2);
SET @country = 'ZA';
SELECT *
FROM VIEWCONTENTS
WHERE COUNTRY = @country
AND CONTENTTYPE = 'A'
AND TASK = 'R23562'
구글 – granadaCoder
당신이 실행 계획을 비교 적이 .... "매개 변수 스니핑"? 또한 읽으십시오 : http://www.sqlperformance.com/2013/08/t-sql-queries/parameter-sniffing-embedding-and-the-recompile-options –
옵티마이 저가 로컬 값을 알지 못하기 때문에 변수는 두 번째 쿼리에서 쿼리 계획보다는 테이블/인덱스 스캔을 사용하는 것이 가장 가능성이 높습니다. – steoleary