SQL Server, 버퍼 매니저 개체
적용 대상: SQL Server
Buffer Manager 개체는 SQL Server에서 사용하는 방법을 모니터링하는 카운터를 제공합니다.
데이터 페이지를 저장할 메모리입니다.
SQL Server가 데이터베이스 페이지를 읽고 쓸 때 물리적 I/O를 모니터링하는 카운터입니다.
버퍼 풀 확장은 SSD(반도체 드라이브)와 같은 빠른 비휘발성 스토리지를 사용하여 버퍼 캐시를 확장합니다.
SQL Server에서 사용하는 메모리 및 카운터를 모니터링하면 다음을 확인할 수 있습니다.
부적절한 실제 메모리로 인한 병목 현상이 있는 경우 자주 액세스하는 데이터를 캐시에 저장할 수 없는 경우 SQL Server는 디스크에서 데이터를 검색해야 합니다.
메모리를 더 추가하거나 데이터 캐시 또는 SQL Server 내부 구조에서 더 많은 메모리를 사용할 수 있도록 하여 쿼리 성능을 향상시킬 수 있는 경우
SQL Server가 디스크에서 데이터를 읽어야 하는 빈도입니다. 메모리 액세스와 같은 다른 작업에 비해 실제 I/O는 많은 시간을 소비합니다. 실제 I/O를 최소화하면 쿼리 성능을 향상시킬 수 있습니다.
Buffer Manager 성능 개체
이 표에서는 SQL Server Buffer Manager 성능 개체에 대해 설명합니다.
SQL Server Buffer Manager 카운터 | 설명 |
---|---|
Background Writer pages/sec | 복구 간격 설정을 적용하기 위해 플러시된 페이지 수입니다. |
버퍼 캐시 적중률 | 디스크에서 읽을 필요 없이 버퍼 캐시에 있는 페이지의 백분율을 나타냅니다. 비율은 마지막 몇 천 페이지 액세스에 대한 캐시 조회의 총 수로 나눈 총 캐시 적중 횟수입니다. 시간이 많이 지나면 이 비율은 일정해집니다. 캐시에서 읽는 것은 디스크에서 읽는 것보다 훨씬 저렴하기 때문에 이 비율이 높아야 합니다. 일반적으로 SQL Server에서 사용 가능한 메모리 양을 늘리거나 버퍼 풀 확장 기능을 사용하여 버퍼 캐시 적중률을 늘릴 수 있습니다. |
버퍼 캐시 적중률 기준 | 내부 전용. |
Checkpoint pages/sec | 모든 더티 페이지를 플러시해야 하는 검사점 또는 기타 작업에 의해 초당 디스크로 플러시된 페이지 수를 나타냅니다. |
데이터베이스 페이지 | 버퍼 풀에서 데이터베이스 내용이 있는 페이지 수를 나타냅니다. |
확장 할당 페이지 | 버퍼 풀 확장 파일의 무료가 아닌 캐시 페이지의 총 수입니다. |
확장 무료 페이지 | 버퍼 풀 확장 파일에서 사용되지 않은 캐시 페이지의 총 수입니다. |
백분율로 사용 중인 확장 | 버퍼 관리자 페이지에서 차지하는 버퍼 풀 확장 페이징 파일의 백분율입니다. |
확장 미해결 IO 카운터 | 버퍼 풀 확장 파일에 대한 I/O 큐 길이입니다. |
Extension page evictions/sec | 초당 버퍼 풀 확장 파일에서 제거되는 페이지 수입니다. |
확장 페이지 읽기/초 | 초당 버퍼 풀 확장 파일에서 읽은 페이지 수입니다. |
확장 페이지 참조되지 않은 시간 | 페이지가 참조되지 않은 채 버퍼 풀 확장에 남아 있는 평균 시간(초)입니다. |
Extension pages writes/sec | 초당 버퍼 풀 확장 파일에 기록된 페이지 수입니다. |
무료 목록 중단/초 | 사용 가능한 페이지를 기다린 초당 요청 수를 나타냅니다. |
정수 컨트롤러 기울기 | 버퍼 풀의 정수 컨트롤러가 마지막으로 사용한 기울기(-100억 번)입니다. |
Lazy writes/sec | 버퍼 관리자의 지연 기록기가 기록한 초당 버퍼 수를 나타냅니다. 지연 기록기 는 에이징된 더티 버퍼(다른 페이지에 버퍼를 다시 사용하려면 해당 변경 내용을 디스크에 다시 써야 하는 버퍼)의 일괄 처리를 플러시하는 시스템 프로세스이며 이러한 버퍼를 사용자 프로세스에 사용할 수 있게 합니다. 지연 기록기는 사용 가능한 버퍼를 만들기 위해 자주 검사점을 수행할 필요가 없습니다. |
Page life expectancy | 페이지가 참조 없이 버퍼 풀에 남아 있는 시간(초)을 나타냅니다. |
Page lookups/sec | 버퍼 풀에서 페이지를 찾기 위한 초당 요청 수를 나타냅니다. |
Page reads/sec | 초당 발급되는 실제 데이터베이스 페이지 읽기 수를 나타냅니다. 이 통계는 모든 데이터베이스에서 실제 페이지 읽기의 총 수를 표시합니다. 물리적 I/O는 비용이 많이 들기 때문에 더 큰 데이터 캐시, 지능형 인덱스 및 보다 효율적인 쿼리를 사용하거나 데이터베이스 디자인을 변경하여 비용을 최소화할 수 있습니다. |
Page writes/sec | 실행한 물리적 데이터베이스 페이지 초당 쓰기 수를 나타냅니다. |
Readahead pages/sec | 사용 예상 초당 읽은 페이지 수를 나타냅니다. |
Readahead time/sec | readahead를 발급하는 데 소요된 시간(마이크로초)입니다. |
대상 페이지 | 버퍼 풀에 이상적인 페이지 수입니다. |
예시
sys.dm_os_performance_counters 동적 관리 뷰에서 이 T-SQL 쿼리를 사용하여 이 개체의 쿼리 성능 카운터를 탐색하기 시작합니다.
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Buffer Manager%';