FIX: 성능 저하 SQL Server 2012 또는 SQL Server 2014 테이블 변수를 사용 하는 경우

증상

행 수를 사용 하 여 table 변수를 채운 다음 다른 테이블을 조인할 때 쿼리 최적화 프로그램이 쿼리 성능을 저하 시킬 수 있는 비효율적인 쿼리 계획을 선택할 수 있습니다.

해결 방법

이 핫픽스를 적용 한 후 추적 플래그 2453 재컴파일 충분 한 수의 행이 변경 될 때 발생 하는 테이블 변수를 허용 하도록 설정할 수 있습니다. 이 경우 쿼리 최적화 프로그램이 보다 효율적인 계획을 선택할 수 허용할 수 있습니다.

문제가 다음 누적 업데이트에서 처음 수정 되었습니다 또는 / 및 SQL Server 용 서비스 팩입니다.

누적 업데이트 3 SQL Server 2014에 대 한

SQL Server용 누적 업데이트에 대해

SQL Server 2012에 대 한 서비스 팩 2

SQL Server 용 서비스 팩 정보

자세한 내용

일괄 처리 또는 프로시저에서 테이블 변수를 사용 하면 쿼리가 컴파일되고 테이블 변수 비어 있는 초기 상태에 맞게 최적화 됩니다. 이 테이블 변수가 런타임에 행의 수를 채운 경우 미리 컴파일된 쿼리 계획이 더 이상 최적의 수 없습니다. 예를 들어, 쿼리에 조인 합니다 중첩된 루프를 사용 하 여 table 변수는 일반적으로 적은 수의 행에 대 한 보다 효율적 이기 때문. 이 쿼리 계획 테이블 변수가 수백만 개의 행이 있으면 효율적으로 취소할 수 있습니다. 해시 조인은 하위 이러한 조건에서 수도 있습니다. 새 쿼리 계획을 가져오려면 다시 컴파일할 수 있어야. 하지만 다른 사용자 또는 임시 테이블을 달리 table 변수에 행 개수 변경 트리거하지 않습니다 쿼리 재컴파일. 일반적으로 사용 하 여 옵션 (재컴파일), 오버 헤드 비용에이 사용할 수 있습니다.
추적 플래그 2453 쿼리 재컴파일 옵션 (재컴파일) 없는 장점이 있습니다. 이 추적 플래그는 옵션 (재컴파일)의 두 가지 주요 측면에서 차이가 있습니다.
(1) 그 다른 테이블과 동일한 행 개수 임계값을 사용합니다. 쿼리 옵션 (재컴파일) 달리를 실행할 때마다 다시 컴파일할 필요는 없습니다. 미리 정의 된 임계값을 초과 하는 행의 수가 변경 된 때에 재컴파일을 트리거할 합니다.
(2) 옵션 (재컴파일) 쿼리 매개 변수 보기 및 쿼리 최적화를 하면 됩니다. 이 추적 플래그 매개 변수 피킹을 강제로 하지 않습니다.

참고 이 추적 플래그는 런타임 시 ON 이어야 합니다. QUERYTRACEON를 사용 하 여이 추적 플래그를 사용할 수 없습니다. 이 추적 플래그 쿼리 최적화를 더 나은의 비용 절감 효과 보다 많은 비용을 수 있는 쿼리 재컴파일 수를 늘릴 수 있기 때문에 주의 해 서 사용 되어야 합니다.

상태

Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.
속성

문서 ID: 2952444 - 마지막 검토: 2017. 2. 6. - 수정: 1

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Standard

피드백