SQL Server는 언제 과도한 메모리 부여에 대해 경고합니까?


18

"과도한 보조금" 실행 계획 경고 를 생성하는 조건은 무엇입니까 ?

쿼리 메모리 부여가 "ExcessiveGrant"를 감지하여 안정성에 영향을 줄 수 있습니다. 보조금 크기 : 초기 5128KB, 최종 5128KB, 사용 된 16KB.

SSMS

SSMS 계획

SSMS 속성

계획 탐색기

계획 탐색기

실행 계획 XML

<Warnings>
    <MemoryGrantWarning GrantWarningKind="Excessive Grant"
        RequestedMemory="5128" GrantedMemory="5128" MaxUsedMemory="16" />
</Warnings>

답변:


19

이 경고를 생성하려면

  1. 사용 된 최대 메모리는 부여 된 메모리의 5 % 미만 이어야합니다 .
  2. 쿼리는 일반 (소규모 아님) 리소스 세마포어를 사용해야합니다

일반 자원 세마포어 를 사용하려면 쿼리가 다음을 수행해야합니다.

  • 적이 5메가바이트을 통해 메모리를 부여 (5,120킬로바이트, 640 × 8킬로바이트 페이지) 또는
  • 총 계획 비용이 3 개 이상 이며 사소한 계획 이 아닙니다.

서버 버전 요구 사항 :

  • SQL Server 2014 SP2 (12.0.5000) 이상
  • SQL Server 2016 SP1 (13.0.4001) 이상
  • SQL Server 2017 RTM (14.0.1000) 이상
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.