Microsoft SQL Server 2008 R2 SP1(서비스 팩 1) 수정 프로그램을 하나의 다운로드 가능한 파일로 배포 합니다. 수정 프로그램이 누적 되므로 새 릴리스에는 이전 SQL Server 2008 R2 SP1(서비스 팩 1) 업데이트 릴리스에 포함 된 모든 핫픽스와 모든 보안 업데이트가 포함 되어 있습니다.
증상
Microsoft SQL Server 2008 R2에서 SQL Server 성능 조건 경고가 발생 하면 다음과 같은 오류 메시지가 나타날 수 있습니다.
메시지 512, 수준 16, 상태 1, 프로시저 sp_sqlagent_get_perf_counters, 줄 40Subquery 쿼리 값이 1 개 이상 반환 되었습니다. 하위 쿼리가 =,! =, <, <=, >, >= 또는 하위 쿼리를 식으로 사용 하는 경우에는 허용 되지 않습니다.
또한이 경우에도 오류 메시지가 SQL Server 에이전트 오류 로그에 기록 됩니다.참고 이 문제는 Microsoft SQL Server 2008 에서도 발생 합니다.
원인
이 문제는 msdb.dbo.sp_sqlagent_get_perf_counters 시스템 저장 프로시저의 하위 쿼리에서 카운터 값을 잘못 계산 하기 때문에 발생 합니다. 하위 쿼리에 하위 쿼리 조건에 대 한 [object_name] 열에 대 한 내부 조인 관계가 부족 합니다. 따라서 여러 행이 잘못 반환 되 고 "현상" 절에 나와 있는 문제가 발생 합니다.참고 SQL Server 성능 조건 경고가 발생할 때 msdb.dbo.sp_sqlagent_get_perf_counters 시스템 저장 프로시저가 실행 됩니다.
해결 방법
누적 업데이트 정보
SQL Server 2008 R2 SP1 용 누적 업데이트 패키지 3
이 문제에 대 한 픽스는 먼저 누적 업데이트 패키지 3에서 릴리스 되었습니다. SQL Server 2008 R2 SP1 용 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.
2591748 SQL Server 2008 R2 SP1 용 누적 업데이트 패키지 3참고 빌드가 누적 되므로 새로운 각 업데이트 릴리스에는 이전 SQL Server 2008 R2 SP1 업데이트 릴리스에 포함 된 모든 핫픽스와 모든 보안 업데이트가 포함 되어 있습니다. 이 핫픽스를 포함 하는 최신 업데이트 릴리스를 적용 하는 것이 좋습니다. 자세한 내용을 확인하려면 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.
2567616 SQL Server 2008 R2 SP1 이후 릴리스된 SQL Server 2008 R2 빌드가 릴리스 되었습니다.
해결 방법
이 문제를 해결 하려면 msdb.dbo.sp_sqlagent_get_perf_counters 시스템 저장 프로시저의 하위 쿼리를 업데이트 합니다. 이렇게 하려면 [값] 열 계산에 사용 되는 네 개의 하위 쿼리 WHERE 절에 다음 조건을 추가 합니다.
(spi1.[object_name] = spi2.[object_name])
조건을 추가 하 고 나면 하위 쿼리는 다음과 유사 합니다.
SELECT CASE spi2.cntr_value WHEN 0 THEN 1 ELSE spi2.cntr_value ENDFROM sys.dm_os_performance_counters spi2WHERE (spi1.[object_name] = spi2.[object_name])AND (spi1.counter_name + ' ' = SUBSTRING(spi2.counter_name, 1, PATINDEX('% Base%', spi2.counter_name)))AND (spi1.instance_name = spi2.instance_name)AND (spi2.cntr_type = @perfTypeLargeRawBase
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.