SQL Server, 메모리 관리자 개체
적용 대상: SQL Server
Microsoft SQL Server의 Memory Manager 개체는 전체 서버 메모리 사용량을 모니터링하는 카운터를 제공합니다. 전체 서버 메모리 사용량을 모니터링하여 사용자 활동 및 리소스 사용량을 측정하면 성능 병목 상태를 식별하는 데 도움이 될 수 있습니다. SQL Server 인스턴스에서 사용하는 메모리를 모니터링하면 다음을 확인할 수 있습니다.
자주 액세스하는 데이터를 캐시에 저장하기 위한 부적절한 실제 메모리로 인한 병목 현상이 있는 경우. 메모리가 부적절한 경우 SQL Server는 디스크에서 데이터를 검색해야 합니다.
메모리를 더 추가하거나 데이터 캐시 또는 SQL Server 내부 구조에서 더 많은 메모리를 사용할 수 있도록 하여 쿼리 성능을 향상시킬 수 있는 경우
메모리 관리자 카운터
이 표에서는 SQL Server 메모리 관리자 카운터에 대해 설명합니다.
SQL Server 메모리 관리자 카운터 | 설명 |
---|---|
연결 메모리(KB) | 연결 유지 관리를 위해 서버에서 사용 중인 총 동적 메모리 양을 지정합니다. |
Database Cache Memory(KB) | 서버가 현재 데이터베이스 페이지 캐시에 사용하고 있는 메모리 양을 지정합니다. |
메모리의 외부 이점 | 특정 캐시에 메모리를 추가하면 성능이 향상되는 내부 예측입니다. 엔진에서 캐시 간에 메모리 사용량의 균형을 맞추는 데 사용되며, 예기치 않은 캐시 증가로 문제를 해결할 때 지원하는 데 유용합니다. 값은 내부 계산에 따라 정수로 표시됩니다. |
Free Memory(KB) | 현재 서버에서 사용하지 않는 커밋된 메모리의 양을 지정합니다. |
부여된 작업 영역 메모리(KB) | 해시, 정렬, 대량 복사 및 인덱스 만들기 작업과 같은 실행 중인 프로세스에 현재 부여된 총 메모리 양을 지정합니다. |
Lock Blocks | 서버에서 현재 사용 중인 잠금 블록 수를 지정합니다(주기적으로 새로 고침). 잠금 블록은 테이블, 페이지, 행과 같은 개별적인 잠금 리소스를 나타냅니다. |
할당된 잠금 블록 | 할당된 잠금 블록의 현재 수를 지정합니다. 서버 시작 시 할당된 잠금 블록 수와 할당된 잠금 소유자 블록 수는 SQL Server 잠금 구성 옵션에 따라 달라집니다. 더 많은 잠금 블록이 필요한 경우 값이 증가합니다. |
메모리 잠금(KB) | 서버가 잠금에 사용하는 동적 메모리의 총 양을 지정합니다. |
잠금 소유자 블록 | 서버에서 현재 사용 중인 잠금 소유자 블록 수를 지정합니다(주기적으로 새로 고침). 잠금 소유자 블록은 개별 스레드가 개체에 대한 잠금의 소유권을 나타냅니다. 따라서 세 개의 스레드가 각각 페이지에 공유(S) 잠금이 있는 경우 세 개의 잠금 소유자 블록이 있습니다. |
할당된 잠금 소유자 블록 | 할당된 잠금 소유자 블록의 현재 수를 지정합니다. 서버 시작 시 할당된 잠금 소유자 블록 수와 할당된 잠금 블록 수는 SQL Server 잠금 구성 옵션에 따라 달라집니다. 잠금 소유자 블록이 더 필요하면 이 값을 늘리십시오. |
로그 풀 메모리(KB) | 서버가 로그 풀에 사용하는 총 동적 메모리 양입니다. |
최대 작업 영역 메모리(KB) | 해시, 정렬, 대량 복사 및 인덱스 만들기 작업과 같은 프로세스를 실행하는 데 사용할 수 있는 최대 메모리 양을 나타냅니다. |
메모리 부여 미해결 | 작업 영역 메모리 부여를 성공적으로 획득한 총 프로세스 수를 지정합니다. |
메모리 부여 보류 중 | 작업 공간 메모리 부여를 대기 중인 총 프로세스 수를 지정합니다. |
최적화 프로그램 메모리(KB) | 서버가 쿼리 최적화에 사용하는 총 동적 메모리 양을 지정합니다. |
Reserved Server Memory(KB) | 서버가 향후 사용을 위해 예약한 메모리 양을 나타냅니다. 이 카운터는 처음에 부여된 현재 사용되지 않는 메모리 양을 보여 줍니다. 이 메모리는 부여된 작업 영역 메모리(KB)에 표시됩니다. |
SQL 캐시 메모리(KB) | 서버가 동적 SQL 캐시를 위해 사용 중인 총 동적 메모리 양을 지정합니다. |
도난당한 서버 메모리(KB) | 서버가 데이터베이스 페이지 이외의 용도로 사용하는 메모리 양을 지정합니다. |
Target Server Memory (KB) | 서버에서 사용할 수 있는 이상적인 메모리 양을 나타냅니다. |
Total Server Memory(KB) | 메모리 관리자를 사용하여 서버에서 커밋한 메모리 양을 지정합니다. |
예시
sys.dm_os_performance_counters 동적 관리 뷰에서 이 T-SQL 쿼리를 사용하여 이 개체의 쿼리 성능 카운터를 탐색하기 시작합니다.
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Memory Manager%';