KB3005011 - SQL Server Service Broker를 사용할 때 tempdb 데이터 파일의 예기치 않은 증가

적용 대상
SQL Server 2016

증상

Microsoft SQL Server Service Broker 사용하는 애플리케이션이 대화당 하나의 메시지 패턴으로 구성된 경우 tempdb 데이터 파일이 예기치 않게 증가합니다. 이 패턴은 일반적으로 애플리케이션 감사에 사용되는 "fire-and-forget" 패턴과 유사합니다.

이 문제가 발생하는 동안 sys.dm_db_task_space_usage DMV(동적 관리 뷰)를 쿼리하는 경우 내부 Service Broker 작업을 실행하는 세션 ID의 "internal_objects_alloc_page_count"과 동일한 속도로 "internal_objects_dealloc_page_count" 값이 증가하지 않는 것을 볼 수 있습니다.

또한 보류 중인 모든 대화가 닫혀 정리된 후에도 tempdb 공간이 해제되지 않습니다.

원인

데이터 파일의 증가는 주로 sys.sysdesend 테이블에 대한 상수 삽입 및 업데이트로 인해 발생합니다. 이 경우 Service Broker를 사용하면 tempdb 데이터 파일이 계속 증가합니다.

해결 방법

이 문제는 Microsoft SQL Server 2016에서 해결되었습니다.

누적 업데이트 정보

SQL Server 2012 SP3(서비스 팩 3)에 대한 누적 업데이트 5
            
             SQL Server 2014 SP1의 누적 업데이트 10 

SQL Server 2014 SP2의 누적 업데이트 3

SQL Server 대한 누적 업데이트 정보

SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.

SQL Server 2012 SP3에 대한 최신 누적 업데이트

SQL Server 2014 SP1/SP2에 대한 최신 누적 업데이트

      

추가 정보

tempdb에서 릴리스되지 않은 공간을 회수하려면 SQL Server 서비스를 다시 시작합니다.

이 문제를 방지하려면 다음 TechNet 항목의 "성능 및 확장성 기술" 섹션에 있는 일반적인 권장 사항을 따릅니다.

Service Broker: 성능 및 확장성 기술

상태

Microsoft는 현재 Service Broker 디자인에서 알려진 문제임을 확인합니다.