우리는 느린 구성의 SQL Server 쿼리가 크기가 300GB 인 데이터베이스 중 하나에서 데이터를 타격 / 페치하여 아래 구성으로 서버에서 호스팅되는 근본 원인을 파악하려고합니다.
Windows Server 2003 R2, SP2, Enterprise Edition, 16GB RAM, 12 CPU 32 비트
SQL Server 2005, SP4, Enterprise Edition, 32 비트
우리는 이미 한 달 이상 걸릴 64 비트로의 업그레이드에 대해 비즈니스에 알 렸습니다.
그러나 현재 문제의 경우 메모리 부족을 해결하거나 최종적으로 RAM을 늘리는 결론에 도달하면 데이터를 수집하려고합니다.
작업 완료 : 재 인덱싱 및 업데이트 통계가이 DB에 적합합니다.
아래에 표시된 것처럼로드 시간 동안 실행 된 지난 5 일 동안 세마포어 대기 유형에 주목했습니다.
아래 쿼리 후 정보가 거의 없음 : 버퍼 크기 = 137272
SELECT SUM(virtual_memory_committed_kb)
FROM sys.dm_os_memory_clerks
WHERE type='MEMORYCLERK_SQLBUFFERPOOL'
아래 쿼리 당 세마포 메모리 = 644024
SELECT SUM(total_memory_kb)
FROM sys.dm_exec_query_resource_semaphores
다음은 좀 더 많은 정보는에서 수집 dm_exec_query_resource_semaphores
및 sys.dm_exec_query_memory_grants
DMV의
따라서 위의 정보에서 SP_Blitz 데이터 당 리소스 세마포어가 문제인 것으로 보입니다.
사용 가능한 16GB RAM에 비해 리소스 세마포어 ID에 할당 된 메모리 'target_memory_kb'가 너무 낮습니다.
참고 * 8 시간 실행시 분석 당 'target_memory_kb'는 16GB에 비해 항상 1GB 미만입니까?
여기서 문제가 될 수있는 방법과 해결 방법은 제안하십시오.
감사