쿼리에 조회조건을 변수로 줬을때는 느린데, 값을 넣고 조회하면 속도가 빠릅니다.
변수로 조회시 10초, 값으로 조회시 1초 걸립니다
실행계획도 보고 구글링도 해봤지만 원인을 모르겠습니다.
고수님들 답변 부탁드립니다.
쿼리 예 - 변수 지정하면 속도가 느립니다.
DECLARE @DEPT NVARCHAR(3)
SELECT DEPT
FROM DEPT_TABLE
WHERE DEPT = @DEPT
아래와 같이 CONVERT를 했는대도 느립니다.
WHERE DEPT = CONVERT(NVARCHAR(3), @DEPT)
쿼리 예 - 값을 지정하면 속도가 빠릅니다.
DECLARE @DEPT NVARCHAR(3)
SELECT DEPT
FROM DEPT_TABLE
WHERE DEPT = '100'
변수를 사용하는 경우 속도가 다를 수 있는데, "파라미터 스니핑"에 따른 성능 이슈가 발생할 수 있습니다.
MS QA 내용 참고해 보세요.
https://learn.microsoft.com/en-us/answers/questions/262485/sql-server-how-to-determine-parameter-sniffing-pro