>

조건보다 크거나 같은 조인이있는 선택 사항이 있습니다.

다음 쿼리 중 성능이 더 우수한

SELECT Id.[Id],id.[IdentityGuid],Id.LastUpdated, Id.[DisabledDate], Id.[DeletedDate], ip.[Hash]
                FROM [IDTable] id
                LEFT OUTER JOIN PHTable ip ON ip.IdentityId = id.Id AND ip.type= 3 AND ip.[ModifiedDate]>=
                CASE WHEN @modifiedSince is not null then @modifiedSince ELSE ip.[ModifiedDate]
WHERE id.EtId = @tId AND (@modifiedSince is null OR id.[LastUpdated] >= @modifiedSince OR ip.[ModifiedDate]>= ip.[ModifiedDate])

또는

SELECT Id.[Id],id.[IdentityGuid],Id.LastUpdated, Id.[DisabledDate], Id.[DeletedDate], ip.[Hash]
                    FROM [IDTable] id
                    LEFT OUTER JOIN PHTable ip ON ip.IdentityId = id.Id AND ip.type= 3 AND (@modifiedSince is null OR ip.[ModifiedDate]>= @modifiedSince)
    WHERE id.EtId = @tId AND (@modifiedSince is null OR id.[LastUpdated] >= @modifiedSince OR ip.[ModifiedDate]>= ip.[ModifiedDate])

이러한 문장을 사용하는 경우를 사용하는 수단

ip.[ModifiedDate]>=CASE WHEN @modifiedSince is not null then @modifiedSince ELSE ip.[ModifiedDate] END

또는 이처럼

(@modifiedSince is null OR ip.[ModifiedDate]>= @modifiedSince)


  • 답변 # 1

    매개 변수 @modifiedSince 일 때 모든 레코드를 가져 오려고합니다.   NULL 입니다  (예) 옵션 필터.

    NULL 가있을 때 둘 다 같은 결과를 얻지 못합니다   ip.[ModifiedDate] 의 값  열

    NULL 가 없다면  와이즈 비즈  그런 다음 두 번째 접근 방식이 조금 더 깨끗해 보입니다. 성능면에서 둘 다 비슷한 실행 시간을 가져야합니다

    ip.[ModifiedDate]

  • 이전 javascript - DigitalOcean 서버에서 nodeJS 애플리케이션 실행
  • 다음 python - for 루프를 사용하여 1 그림의 여러 플롯