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

증상

테이블 변수를 여러 행으로 채운 다음 다른 테이블과 조인 하면 쿼리 최적화 프로그램이 비효율적인 쿼리 계획을 선택 하 여 쿼리 성능이 느려지는 문제가 발생할 수 있습니다.

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

SQL Server 2012 용 서비스 팩 2

서비스 팩은 누적 됩니다. 새로운 각 서비스 팩에는 이전 서비스 팩의 모든 수정 프로그램과 함께 새로운 수정 프로그램이 포함 되어 있습니다. 최신 서비스 팩과 해당 서비스 팩에 대 한 최신 누적 업데이트를 적용 하는 것이 좋습니다. 최신 서비스 팩을 설치 하기 전에 이전 서비스 팩을 설치할 필요가 없습니다. 최신 서비스 팩 및 최신 누적 업데이트에 대 한 자세한 내용을 보려면 다음 문서에서 표 1을 사용 하세요.

SQL Server의 버전, 버전 및 업데이트 수준 및 해당 구성 요소를 확인 하는 방법

추가 정보

일괄 처리 또는 프로시저에서 테이블 변수를 사용 하는 경우 쿼리는 테이블 변수의 초기 빈 상태에 대해 컴파일되고 최적화 됩니다. 런타임에이 테이블 변수를 여러 행으로 채우면 미리 컴파일된 쿼리 계획이 더 이상 최적이 아닐 수 있습니다. 예를 들어 쿼리는 일반적으로 적은 수의 행에 대해 더 효율적 이므로 중첩 루프를 사용 하 여 테이블 변수를 조인할 수 있습니다. 테이블 변수에 수백만 개의 행이 있는 경우이 쿼리 계획을 비효율적으로 만들 수 있습니다. 이러한 조건에서 해시 조인을 선택 하는 것이 더 좋을 수 있습니다. 새 쿼리 계획을 얻으려면 다시 컴파일해야 합니다. 그러나 다른 사용자 또는 임시 테이블과는 달리 테이블 변수의 행 개수 변경은 쿼리 재컴파일를 트리거하지 않습니다. 일반적으로 자체 오버 헤드 비용을 포함 하는 옵션 (재컴파일)을 사용 하 여이 문제를 해결할 수 있습니다. 추적 플래그 2453를 사용 하면 옵션 (재컴파일) 없이 쿼리를 다시 컴파일할 때 이점을 얻을 수 있습니다. 이 추적 플래그는 두 가지 주요 측면의 OPTION (재컴파일)과 다릅니다. (1) 다른 테이블과 같은 행 개수 임계값을 사용 합니다. 모든 실행 옵션 (재컴파일)과 달리 쿼리를 컴파일할 필요는 없습니다. 행 개수 변경 내용이 미리 정의 된 임계값을 초과 하는 경우에만 다시 컴파일을 트리거합니다. (2) 옵션 (재컴파일)은 쿼리가 매개 변수를 피킹하거나 쿼리를 최적화 하도록 강제 합니다. 이 추적 플래그는 매개 변수 피킹을 강제 적용 하지 않습니다.참고 이 추적 플래그는 런타임에 설정 되어 있어야 합니다. QUERYTRACEON에는이 추적 플래그를 사용할 수 없습니다. 이 추적 플래그는 보다 나은 쿼리 최적화 로부터 비용을 절약 하는 쿼리 재컴파일 수가 증가할 수 있으므로 주의 해 서 사용 해야 합니다.

상태

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

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

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

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

이 정보가 유용한가요?

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

의견 주셔서 감사합니다!

×