2017-02-17 1 views
2

where 절에서 함수를 사용하는 대신 다른 작업을 수행 할 수 있습니다.SQL 최적화 where 절

같아요

DateAdd 함수 복용 시간 성능 저하 ..

SELECT cust_id, order_date, price 
FROM customers 
WHERE DATEADD(DD,50,order_date)>=GETDATE() 

답변

7

order_date에 함수를 실행하지 마십시오이 SQL을 최적화 getdate() 대신

select cust_id, order_date, price 
from customers 
where order_date>=dateadd(Day,-50,getdate()) 
에 역을 실행하는 방법

order_date에 대한 함수 호출은 대신 필터 조건에서 함수를 실행하면 인덱스 스캔이 발생합니다이 열에 대한 색인 탐색을 유지할 수 있습니다. (색인이있는 경우).

SARGable functions in SQL Server - Rob Farley

+0

더 나은 방법, 성능 현명한가 ?? – user1810575

+3

예, order_date 열에 인덱스를 만들면 가능합니다. – Murthy

+0

여기서 order_date = dateadd (Day, -50, getdate()) – user1810575