왜 성능 등 큰 차이 나는 WHERE 절 (첫 번째 쿼리) 내 날짜를 넣어 경우, 또는 내가 매개 변수로 (두 번째 쿼리)WHERE 절에서 하드 코딩 된 날짜가 왜 매개 변수와 동일한 날짜보다 빠른 성능을 제공합니까?
--------/* Execution time 3 sec*/
select
tblNoteDiaries.DueDate,
col2,
col3
from MyTable
where CAST(tblNoteDiaries.DueDate as date) <= cast(getdate()as date) and cast(tblNoteDiaries.DueDate as date) >= CAST('2017-09-29' as DATE)
--------/* Execution time 10 sec*/
declare @DateFrom datetime = '2017-09-29',
@DateTo datetime = '2017-10-05'
select
tblNoteDiaries.DueDate,
col2,
col3
from MyTable
where CAST(tblNoteDiaries.DueDate as date) >= @DateFrom and cast(tblNoteDiaries.DueDate as date) <= @DateTo
을 동일한 날짜를 넣으면 내가 저장 프로 시저로이 질의를 필요로한다, 성능 저하없이 날짜 매개 변수를 활용하는 최선의 방법은 무엇입니까 ??
실행 계획에 차이가 있습니까? – FLICKER
가장 일반적인 매개 변수 스니핑입니다. 실행 계획은 당신에게 단서를 줄 것입니다. –