내 데이터베이스의 크기는 약 1GB입니다 (내 DB의 mdf 파일에 따라). 내 데이터베이스 서버에는 4GB의 램이 있습니다. 활성화 된 상태에서 컴퓨터의 메모리 소비량을 살펴보면 약 85 % 사용 (OS 등)
이것은 모든 DB 읽기 활동이 메모리에서만 작동한다는 의미입니까 (즉, 전체 DB가 메모리에 앉아 있음)? 아니면 여전히 디스크로 이동해야하는 경우가 있습니까?
내 데이터베이스의 크기는 약 1GB입니다 (내 DB의 mdf 파일에 따라). 내 데이터베이스 서버에는 4GB의 램이 있습니다. 활성화 된 상태에서 컴퓨터의 메모리 소비량을 살펴보면 약 85 % 사용 (OS 등)
이것은 모든 DB 읽기 활동이 메모리에서만 작동한다는 의미입니까 (즉, 전체 DB가 메모리에 앉아 있음)? 아니면 여전히 디스크로 이동해야하는 경우가 있습니까?
답변:
예, 전체 데이터베이스가 메모리에 저장되어있을 수 있습니다. 검사 점 간격으로 더티 페이지를 디스크로 플러시합니다. 그러나 모든 업데이트는 로그에 기록하고 커밋하기 전에 영구 저장소에서 로그 레코드가 강화 될 때까지 기다려야합니다. 이 구식 SQL Server 2000 I / O 기본 사항 에는 필요한 모든 세부 정보가 포함되어 있습니다.
그러나 당신은 추측 할 필요가 없습니다. 당신은 이것을 정확하게 측정하고 그것이 발생하는지 확인할 수 있습니다. 관련 성능 카운터 는 다음과 같습니다.
My database is about 1gb in size (according to the mdf file of my db). My database server has 4gb of ram.
. 60 개의 웹 사이트가 있고 버퍼 풀 캐싱이 작동하는 경우에 대한 답변을 원한다면 다음 질문을하십시오.
you don't have to guess, you can measure this exactly
.
전체 DB (즉, 데이터)는 메모리 (sql 서버)에 저장되지 않습니다. 인덱스 및 / 또는 키를 검사 한 후 데이터 파일에서 찾고있는 데이터가있는 위치에 대한 포인터를 검색 한 다음 디스크로 이동하여 검색 할 수 있습니다. 키나 인덱스가 없으면 전체 힙을 스캔해야합니다.
실행중인 SQL Server 버전에 따라 디스크 읽기를 최소화하기 위해 잘 사용하는 데이터를 캐싱하는 전략이있을 수 있습니다.
예를 들어 MySql Cluster 데이터베이스와 같은 인 메모리 DB를 얻을 수 있습니다. 이는 고 가용성 / 재해 복구 및 빠른 데이터 검색을 위해 서버 클러스터의 ENTIRE 데이터베이스를 메모리에 맞추도록 설계되었습니다.