인터넷상의 기사에서는 사용자 정의 함수가 성능에 부담을 주거나 성능을 향상시킬 수 있다고합니다.SQL 표준 성능과 T-SQL 확장 기능
이제 표준 SQL은 매우 제한적이지만 T-SQL 기본 제공 함수처럼 일부 동작은 여전히 작성 될 수 있습니다.
예 : adddays()
대 dateadd()
. 또 다른 포인트는 isNull()
이 아닌 ANSI 표준 함수 coalesce()
을 사용하는 것이 더 좋다고 들었습니다.
ANSI SQL 표준 함수와 T-SQL 함수의 성능 차이는 무엇입니까?
T-SQL은 성능 향상에 어떠한 부담도 줍니까?
내 연구는 추세를 나타내는 것 같지 않습니다.
내장 함수는 UDF 함수보다 뛰어나지 만 올바르게 사용되지 않으면 주요 성능 문제가 발생할 수 있습니다. 예를 들어 where 절에서 이들을 사용할 때. coalesce가 isnull보다 낫다는 것을 모르지만 isnull이 t-SQL 인 ANSI와 호환됩니다. 두 가지는 반환되는 데이터 유형과 관련하여 작업 방식에 약간의 차이가 있습니다. –
고맙습니다. 그러나 ANSI 기본 제공 함수를 T-SQL 전용 함수와 비교하는 경우에는 어떻게해야합니까? 실제 성능 차이가 있습니까? 나는 그들이 다르게 일할 것이라는 것을 안다. 그러나 동일한 결과를 제공하는 두 가지 기능 중 하나가 선택되면 동일한 방식으로 사용하게됩니다. 실적이 달라질 수있는 기회가 아직 남아 있습니까? –
아래에 명시된 바와 같이 사례별로 테스트해야합니다. 일반적으로 (사용법이 SAARGable이 아닌 쿼리를 작성하지 않는다고 가정 할 때) 차이점은 거의 없습니다. –