Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

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

증상

다음과 같은 경우를 생각해 볼 수 있습니다.

  • 응용 프로그램은 Microsoft SQL Server 2008 및 Microsoft SQL Server 2008 R2의 임시 테이블 일부를 참조 하는 쿼리를 실행 합니다. 임시 테이블은 저장 프로시저 대신 세션에서 만들어집니다.

  • 쿼리 계획이 캐시 됩니다.

  • 대부분의 사용자는 고도로 동시 환경에서 동일한 쿼리를 실행 합니다. 예를 들어, 많은 사용자는 다음 쿼리를 실행 하는 응용 프로그램을 사용 합니다.

    create table #x (col1 int) go insert into #x values (1) go select * from #x where col1 = 1 go

이 시나리오에서는 응용 프로그램에 성능 문제가 발생 합니다.참고 이 문제를 식별 하는 방법에 대 한 자세한 내용은 "추가 정보" 섹션을 참조 하세요.

원인

이 문제는 동일한 쿼리 계획이 쿼리 텍스트가 동일한 경우 각 사용자의 동일한 해시 버킷에 캐시에 삽입 되기 때문에 발생 합니다. 많은 계획이 동일한 버킷 (해시 체인이 라고도 함)에 해시 되는 경우 캐시에서 계획을 조회 하는 데 걸리는 시간이 크게 커지고 성능 문제가 발생할 수 있습니다. 또한 작업자 스레드는 심각한 spinlock 경합을 발생 시킬 수 있으며, 이러한 작업자 스레드가 올바른 스케줄러를 수행 하지 못할 경우 다른 스레드에 영향을 줍니다.

해결 방법

참고 현재 SQL Server 2008 R2 업데이트만 사용할 수 있습니다. SQL Server 2008의 경우이 문제를 해결 하려면 "해결 방법" 섹션을 참조 하세요.

누적 업데이트 정보

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는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.

해결 방법

SQL Server 2008 및 SQL Server 2008 R2에서이 문제를 해결 하려면 임시 테이블의 참조를 모두 내부 저장 프로시저로 이동 합니다.

추가 정보

테이블 기본 사항을 만들고 수정 하는 방법에 대 한 자세한 내용은 다음 MSDN 웹 사이트를 방문 하세요.

테이블 기본 사항을 만들고 수정 하는 방법Spinlock 경합은 sys.dm_os_spinlock_statsSOS_CACHESTORE 스핀 들에 경합 비율이 높은 DMV (동적 관리 뷰)에서 확인할 수 있습니다. 이 문제를 확인 하려면 다음과 유사한 쿼리를 실행 합니다.

select cp.bucketid, count(cp.bucketid) as BucketCount, st.text from sys.dm_exec_cached_plans cp cross apply sys.dm_exec_sql_text(cp.plan_handle) as st group by cp.bucketid, st.text having count(cp.bucketid) >1 order by BucketCount desc이 쿼리를 실행할 때 다음과 같은 조건을 충족 하는 경우 성능 문제가 발생할 수 있습니다.

  • 이 쿼리는 동일한 쿼리 텍스트를 생성 합니다.

  • 동일한 # cketid 수가 큽니다.참고 일반적으로 동일한 보완 cketid 에 대 한 많은 수는 1000를 통해입니다.

  • 쿼리가 임시 테이블을 참조 합니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×