측정 계획 제거


9

최대 메모리가 24GB로 설정된 SQL Server 2016 SP1이 있습니다.
이 서버에는 많은 수의 컴파일이 있으며이 컴파일 중 10 %만이 Ad-Hoc 쿼리에서 발생합니다. 따라서 새로 컴파일 된 계획은 계획 캐시에 저장해야하지만 계획 캐시의 크기는 증가하지 않습니다 (약 3.72GB).

캐시에서 계획을 제거하는 로컬 메모리 부족이 의심됩니다. 계획 캐시 압력 한계는 5GB입니다. (0-4GB에서 보이는 대상 메모리의 75 % + 4GB-64GB에서 보이는 대상 메모리의 10 % + 보이는 대상 메모리의 5 %> 64GB). 캐시 저장소가 압력 한계의 75 %에 도달하면 캐시에서 계획을 제거해야합니다. 필자의 경우 5GB의 75 %는 3.75GB입니다. 따라서 이것이 높은 컴파일의 원인이라는 것은 그럴듯합니다.

캐시에서 계획에서 제거를 측정하는 방법 (퍼프 먼, 확장 이벤트 등)이 있습니까? 그래서 로컬 메모리 압력이 실제로 높은 컴파일의 원인이라고 확신 할 수 있습니까?

답변:


9

이를위한 XEvent가 있습니다.

query_cache_removal_statistics

쿼리 캐시가 계획 캐시에서 제거되고 개체에 대한 기록 통계가 소멸 될 때 발생합니다.

그래서 같은 :

CREATE EVENT SESSION [PlanCacheEvictions] ON SERVER 
ADD EVENT sqlserver.query_cache_removal_statistics(
    ACTION(sqlserver.sql_text))

또한 계획 캐시에 많은 단일 사용 계획이있는 경우 임시 워크로드에 맞게 최적화 설정을 고려하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.