SQL Server 2012 Express를 기본 데이터 저장소로 포함하려는 응용 프로그램을 구축 중입니다. 개발 시스템 (3GB RAM이있는 Win7-32)에서 테스트 할 때 SQL Server Express Edition에 대해 sqlservr.exe
게시 된 하드웨어 스케일링 제한 에서 예상 한대로 1GB 이상의 RAM을 사용 하는 프로세스 는 관찰되지 않았습니다 .
그런 다음 응용 프로그램을 서버 등급 시스템 (16GB RAM이있는 Win Server 2008R2 64 비트)으로 이동하여 성능을 평가하고 sqlservr.exe
프로세스가 약 9.5GB의 RAM으로 빠르게 확장되어 그대로 유지 되었다는 사실에 놀랐 습니다.
효과가 있는지 확인하기 위해 몇 번 다시 시작했지만 매번 프로세스가 ~ 9.5GB로 빠르게 돌아 왔습니다. 이제는 SQL Server Express에서 RAM을 사용하게 된 것을 기쁘게 생각하지만, RAM이 잘못 사용 된 성능 수준에 의존하지 않도록 예상되는 동작인지 알고 싶습니다.
에 따르면 서버 컴퓨터의 SQL Server 버전 인 FYI SELECT @@VERSION
는 다음과 같습니다.
Microsoft SQL Server 2012 (SP1) - 11.0.3000.0 (X64)
Oct 19 2012 13:38:57
Copyright (c) Microsoft Corporation
Express Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
내 9.5GB 번호는 작업 관리자의 "개인 작업 집합"번호에서 나왔습니다. DBCC memorystatus
현재 유휴 서버 인 경우 의 첫 번째 출력 테이블 은 다음과 같습니다.
PROCESS/SYSTEM COUNTS
Available Physical Memory 5543616512
Available Virtual Memory 8734902411264
Available Paging File 22471094272
Working Set 9664200704
Percent of Committed Memory in WS 99
Page Faults 2627510
System physical memory high 1
System physical memory low 0
Process physical memory low 0
Process virtual memory low 0
spaghettidba의 제안 된 쿼리 출력 sys.dm_os_memory_clerks
:
MEMORYCLERK_SQLBUFFERPOOL 1410
OBJECTSTORE_LOCK_MANAGER 256
MEMORYCLERK_SQLCLR 38
MEMORYCLERK_SOSNODE 26
CACHESTORE_SQLCP 11
30MB보다 작은 10 개 이상의 작은 항목
MEMORYCLERK_SQLBUFFERPOOL 1410 OBJECTSTORE_LOCK_MANAGER 256 MEMORYCLERK_SQLCLR 38 MEMORYCLERK_SOSNODE 26 CACHESTORE_SQLCP 11
과 같습니다. 그리고 <30MB에 해당하는 몇 개의 작은 쿼리가 있습니다. 나에게 이상해 보인다. 주석 형식에서 -arg-