KB2481274-FIX: DATEDIFF 함수를 사용 하는 쿼리가 SQL Server 2005 또는 SQL Server 2008 또는 sql server 2008 R2에서 느리게 실행 될 수 있음

Microsoft SQL Server 2005 또는 Microsoft SQL Server 2008 또는 SQL 2008 R2 수정 프로그램이 하나의 다운로드 가능한 파일로 배포 됩니다. 수정 프로그램이 누적 되므로 새 릴리스에는 이전 Microsoft SQL Server 2005 또는 Microsoft SQL Server 2008 또는 SQL 2008 R2 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다.

증상

Microsoft SQL Server 2005 또는 Microsoft SQL Server 2008 또는 Microsoft sql Server 2008 R2 인스턴스에서 다음 조건을 충족 하는 쿼리를 실행 한다고 가정 합니다.

  • 쿼리에 관계 연산자가 포함 되어 있습니다. 예를 들어 작음 (<) 연산자가 있습니다.

  • 관계 연산자의 피연산자에는 DATEDIFF 함수가 있습니다.

이 상황에서 SQL Server는이 쿼리를 실행 하기 위해 최적 하지 않은 쿼리 계획을 선택할 수 있습니다. 따라서 쿼리가 느리게 실행 될 수 있습니다.

원인

이 문제는 SQL Server 최적화 프로그램이 DATEDIFF 함수를 사용할 때 반환 되는 행 수를 예상 하기 때문에 발생 합니다.

해결 방법

누적 업데이트 정보

SQL Server 2005 서비스 팩 3

이 문제에 대 한 픽스는 SQL Server 2005 서비스 팩 3에 대 한 누적 업데이트 15에서 처음 릴리스 되었습니다. 이 누적 업데이트 패키지에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2507766 SQL Server 2005 서비스 팩 3 용 누적 업데이트 패키지 15참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2005 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

960598 SQL Server 2005 서비스 팩 3 이후 릴리스된 SQL Server 2005 빌드가 릴리스 되었습니다. 특정 SQL Server 서비스 팩에 대 한 Microsoft SQL Server 2005 핫픽스가 만들어집니다. Sql server 2005 서비스 팩 3 설치에 SQL Server 2005 서비스 팩 3 핫픽스를 적용 해야 합니다. 기본적으로 SQL Server 서비스 팩에 제공 되는 모든 핫픽스는 다음 SQL Server 서비스 팩에 포함 되어 있습니다.

SQL Server 2005 서비스 팩 4

이 문제에 대 한 픽스는 SQL Server 2005 서비스 팩 4 용 누적 업데이트 2에서 처음 릴리스 되었습니다. 이 누적 업데이트 패키지에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2489409 SQL Server 2005 서비스 팩 4 용 누적 업데이트 패키지 2참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2005 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

2485757 SQL Server 2005 서비스 팩 4 이후 릴리스된 SQL Server 2005 빌드가 릴리스 되었습니다. 특정 SQL Server 서비스 팩에 대 한 Microsoft SQL Server 2005 핫픽스가 만들어집니다. Sql server 2005 서비스 팩 4 설치에 SQL Server 2005 서비스 팩 4 핫픽스를 적용 해야 합니다. 기본적으로 SQL Server 서비스 팩에 제공 되는 모든 핫픽스는 다음 SQL Server 서비스 팩에 포함 되어 있습니다.

SQL Server 2008 서비스 팩 1

이 문제에 대 한 픽스는 SQL Server 2008 서비스 팩 1 용 누적 업데이트 13에서 처음 릴리스 되었습니다. 이 누적 업데이트 패키지에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2497673 SQL Server 2008 서비스 팩 1 용 누적 업데이트 패키지 13참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2008 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

970365 SQL Server 2008 서비스 팩 1 이후 릴리스된 SQL Server 2008 빌드가 릴리스 되었습니다. 특정 SQL Server 서비스 팩에 대 한 Microsoft SQL Server 2008 핫픽스가 만들어집니다. Sql server 2008 서비스 팩 1 설치에 SQL Server 2008 서비스 팩 1 핫픽스를 적용 해야 합니다. 기본적으로 SQL Server 서비스 팩에 제공 되는 모든 핫픽스는 다음 SQL Server 서비스 팩에 포함 되어 있습니다.

SQL Server 2008 서비스 팩 2

이 문제에 대 한 픽스는 SQL Server 2008 서비스 팩 2 용 누적 업데이트 3에서 처음 릴리스 되었습니다. 이 누적 업데이트 패키지에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2498535 SQL Server 2008 서비스 팩 2 용 누적 업데이트 패키지 3참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2008 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

2402659 SQL Server 2008 서비스 팩 2 이후 릴리스된 SQL Server 2008 빌드가 릴리스 되었습니다. 특정 SQL Server 서비스 팩에 대 한 Microsoft SQL Server 2008 핫픽스가 만들어집니다. Sql server 2008 서비스 팩 2 설치에 SQL Server 2008 서비스 팩 2 핫픽스를 적용 해야 합니다. 기본적으로 SQL Server 서비스 팩에 제공 되는 모든 핫픽스는 다음 SQL Server 서비스 팩에 포함 되어 있습니다.

SQL Server 2008 R2 서비스 팩 1

이 문제에 대 한 픽스는 SQL Server 2008 R2 서비스 팩 1에 대 한 누적 업데이트 1에서 처음 릴리스 되었습니다. 이 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2544793 SQL Server 2008 R2 서비스 팩 1에 대 한 누적 업데이트 패키지 1참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2008 R2 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

2567616 SQL Server 2008 R2 서비스 팩 1 이후 릴리스된 SQL Server 2008 R2 빌드가 릴리스 되었습니다.

SQL Server 2008 R2

이 문제에 대 한 픽스는 먼저 누적 업데이트 7에서 릴리스 되었습니다. SQL Server 2008 R2 용 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2507770 SQL Server 2008 R2에 대 한 누적 업데이트 패키지 7 참고 빌드가 누적 되므로 새로운 각 수정 릴리스에는 이전 SQL Server 2008 R2 fix 릴리스에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 픽스 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

981356 SQL Server 2008 R2를 해제 한 후 릴리스된 SQL Server 2008 R2 빌드

상태

Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.

해결 방법

이 문제를 해결 하려면 쿼리 계획이 조건자에서 DATEDIFF 함수를 사용 하지 않도록 쿼리를 다시 작성 합니다. 예를 들어 다음은 느리게 실행 될 수 있습니다.create procedure proc_test @date datetimeasselect COUNT (*) from t where c1 <DATEADD(mm, DATEDIFF(mm,0,dateadd(month, -6,@date)), 0) 그러나 다음 방법으로 쿼리를 다시 작성 하 여 문제를 해결할 수 있습니다.create procedure proc_test2 @date datetimeasdeclare @datestr nvarchar(50), @sqlstr nvarchar(1024)set @datestr = CAST (DATEADD(mm, DATEDIFF(mm,0,dateadd(month, -6,@date)), 0) as nvarchar(50))set @sqlstr ='select COUNT (*) from t where c1 < ''' + @datestr + ''''exec (@sqlstr)

참조

SQL Server에 대 한 증분 서비스 모델에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

935897 보고 된 문제에 대 한 핫픽스를 제공 하기 위해 SQL Server 팀에서 증분 서비스 모델을 사용할 수 있음SQL Server 업데이트의 명명 스키마에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

822499 Microsoft SQL Server 소프트웨어 업데이트 패키지에 대 한 새 이름 지정 스키마소프트웨어 업데이트 용어에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

824684 Microsoft 소프트웨어 업데이트를 설명하는 데 사용되는 표준 용어에 대한 설명

추가 도움이 필요하신가요?

기술 향상
교육 살펴보기
새로운 기능 우선 가져오기
Microsoft Insider 참가

이 정보가 유용한가요?

소중한 의견에 감사드립니다.

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×