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

증상

Windows의 Microsoft SQL Server 2016 또는 SQL Server 2017에서는 다음 조건에서 성능이 저하될 수 있습니다.

  • 여러 개의 동시 INSERTSELECT 작업을 임시 테이블로 실행하는 경우

  • sys.dm_os_waiting_tasks 쿼리하는 경우 이 경우 resource_description 열에는 여러 요청에 대한 PFS(페이지 사용 가능한 공간) 페이지에서 대기가 표시됩니다.

원인

INSERTSELECT 작업에 대한 INSERT 병렬 처리는 windows에서 2016년 SQL Server 또는 SQL Server 2017년에 도입되었습니다. 로컬 임시 테이블로의 INSERT(#접두사로 식별된 테이블만, ## 접두사로 식별된 전역 임시 테이블은 아님)는 이제 비 임시 테이블에 필요한 TABLOCK 힌트를 지정하지 않고도 병렬 처리에 대해 자동으로 사용하도록 설정됩니다. 

INSERT 병렬 처리는 일반적으로 쿼리 성능을 향상하지만, 많은 수의 동시 임시 테이블 INSERTSELECT 작업이 있는 경우 PFS 페이지에 대한 경합이 중요할 수 있습니다. 경우에 따라 이로 인해 전반적인 성능이 저하될 수 있습니다.

해결 방법

이 문제는 SQL Server 2016 서비스 팩 1에서 처음 해결되었습니다. SQL Server 2016 SP1을 적용한 후 INSERT에서 병렬 INSERT를 적용합니다. 로컬 임시 테이블에 대한 SELECT는 기본적으로 비활성화되어 PFS 페이지의 경합을 줄이고 동시 워크로드의 전반적인 성능을 향상시킵니다. 로컬 임시 테이블에 대한 병렬 INSERT가 필요한 경우 사용자는 로컬 임시 테이블에 삽입하는 동안 TABLOCK 힌트를 사용해야 합니다.

해결 방법 섹션에서 언급한 추적 플래그 9495를 사용하도록 설정한 경우 추적 플래그 9495로 SQL Server 2016 SP1을 적용한 후 TABLOCK 힌트에 관계없이 병렬 삽입을 사용하지 않도록 설정한 후 추적 플래그를 사용하지 않도록 설정하고 제거하는 것이 좋습니다.

누적 업데이트 정보

이 문제는 SQL Server 2016에 대한 다음 누적 업데이트에서 해결되었습니다.

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

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

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

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

이 정보가 유용한가요?

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

의견 주셔서 감사합니다!

×