Estou criando um aplicativo no qual planejo incorporar o SQL Server 2012 Express como o armazenamento de dados principal. Ao testar em minha máquina de desenvolvimento (Win7-32 com 3 GB de RAM), nunca observei o sqlservr.exe
processo usar mais de 1 GB de RAM, como seria de esperar dos limites de escala de hardware publicados para a edição Express do SQL Server.
Em seguida, mudei meu aplicativo para uma máquina de servidor (Win Server 2008R2 de 64 bits com 16 GB de RAM) para avaliar seu desempenho lá e fiquei surpreso ao descobrir que o sqlservr.exe
processo expandiu rapidamente para aproximadamente 9,5 GB de RAM e ficou lá.
Eu o reiniciei algumas vezes para ver se isso teria algum efeito, mas a cada vez, o processo retornava rapidamente para ~ 9,5 GB. Agora, certamente, tenho o prazer de ter o SQL Server Express usando minha RAM, mas gostaria de saber se esse é o comportamento esperado, para que eu não dependa de níveis de desempenho baseados no uso incorreto da RAM.
FYI, a versão do SQL Server na minha máquina servidor, de acordo com 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)
Meu número de 9,5 GB veio do número "Private Working Set" no Gerenciador de tarefas. A primeira tabela de saída de DBCC memorystatus
(embora em um servidor agora ocioso) esteja abaixo:
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
Saída da consulta sugerida por spaghettidba em sys.dm_os_memory_clerks
:
MEMORYCLERK_SQLBUFFERPOOL 1410
OBJECTSTORE_LOCK_MANAGER 256
MEMORYCLERK_SQLCLR 38
MEMORYCLERK_SOSNODE 26
CACHESTORE_SQLCP 11
mais ~ 10 entradas menores que somam menos de 30 MB.
MEMORYCLERK_SQLBUFFERPOOL 1410 OBJECTSTORE_LOCK_MANAGER 256 MEMORYCLERK_SQLCLR 38 MEMORYCLERK_SOSNODE 26 CACHESTORE_SQLCP 11
E depois mais algumas pequenas que somam <30 MB. Parece estranho para mim. -arg- na formatação do comentário.