KB3196102 - FIX: SQL Server 2016 Analysis Services에서 메모리의 지속적인 증가로 인한 성능 문제

적용 대상
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

증상

Microsoft SQL Server 2016 Analysis Services instance를 사용한다고 가정합니다. 점점 더 많은 전역 scope 개체가 캐시되지만 이러한 캐시는 정리되지 않습니다. 이로 인해 메모리가 지속적으로 증가하고 결국 서버가 충돌할 수 있습니다.

전역 범위는 각 사용자의 보안 요구 사항에 따라 캐시됩니다. 따라서 일반적으로 다음 시나리오 중 하나가 발생할 때만 이 문제가 발생합니다.

  • 모델에 동적 식(예: UserName(), CustomData())이 있습니다. 이는 문제를 확인하는 데 필수는 아니지만 일반적인 원인입니다. 동적 식이 있는 경우 각 고유 사용자는 고유한 고유한 전역 scope를 빌드해야 합니다. 이로 인해 만들고 캐시해야 하는 전역 범위의 수가 크게 증가합니다.
  • 많은 메타데이터 및 보안이 포함된 복잡한 모델이 있습니다. 이는 scope 개체당 메모리 비용에 영향을 줍니다. 캐시된 전역 범위 수가 증가함에 따라 메모리 공간은 scope 개체당 메모리 비용을 기준으로 증가합니다.
  • 서버에 연결하는 고유 사용자가 다수 있습니다. 예를 들어 PowerBI.com 자주 일정을 따라 각 사용자에 대해 dashboard의 타일을 새로 고칠 수 있습니다. 이 경우 Analysis Services는 각 고유 사용자에 대해 많은 연결 및 쿼리를 수신하고 전역 범위 수가 급증하여 많은 메모리를 사용합니다.

참고: 이 핫픽스를 적용하면 SQL Server 버전은 13.0.2170.0이 됩니다.

해결 방법

누적 업데이트 정보

이 문제에 대한 픽스는 SQL Server에 대한 다음 누적 업데이트에 포함되어 있습니다.

SQL Server의 누적 업데이트 정보

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

SQL Server 2016용 최신 누적 업데이트
      

      

해결 방법

이 문제를 해결하려면 적절한 일정에 따라 데이터베이스에 대한 ClearCache> XMLA 명령을 수동으로 실행<합니다. 이렇게 하면 모든 전역 scope 캐시를 지울 수 있으며 메모리가 다시 줄어듭니다. 이 옵션을 사용하면 캐시된 전역 scope를 다시 사용할 수 없으므로 다음에 연결할 때 약간의 성능 비용이 발생합니다.

상태

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

참조 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.