Estoy creando una aplicación en la que planeo incrustar SQL Server 2012 Express como el almacén de datos principal. Al probar en mi máquina de desarrollo (Win7-32 con 3 GB de RAM), nunca observé el sqlservr.exe
proceso para usar más de 1 GB de RAM, como era de esperar de los límites de escala de hardware publicados para la edición Express de SQL Server.
Luego moví mi aplicación a una máquina de nivel de servidor (Win Server 2008R2 de 64 bits con 16 GB de RAM) para evaluar su rendimiento allí y me sorprendió descubrir que el sqlservr.exe
proceso se expandió rápidamente a aproximadamente 9,5 GB de RAM y permaneció allí.
Lo reinicié un par de veces para ver si eso tendría algún efecto, pero cada vez, el proceso volvió rápidamente a ~ 9.5GB. Ahora me complace que SQL Server Express haga uso de mi RAM, pero me gustaría saber si este es un comportamiento esperado para no depender de los niveles de rendimiento que se basan en el uso de RAM que es incorrecto.
Para su información, la versión de SQL Server en mi máquina servidor, de acuerdo con SELECT @@VERSION
, es:
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)
Mi número de 9.5GB vino del número de "Conjunto de trabajo privado" en el Administrador de tareas. La primera tabla de salida de DBCC memorystatus
(aunque en un servidor ahora inactivo) está a continuación:
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
Salida de la consulta sugerida de spaghettidba sobre sys.dm_os_memory_clerks
:
MEMORYCLERK_SQLBUFFERPOOL 1410
OBJECTSTORE_LOCK_MANAGER 256
MEMORYCLERK_SQLCLR 38
MEMORYCLERK_SOSNODE 26
CACHESTORE_SQLCP 11
más ~ 10 entradas más pequeñas que suman menos de 30 MB.
MEMORYCLERK_SQLBUFFERPOOL 1410 OBJECTSTORE_LOCK_MANAGER 256 MEMORYCLERK_SQLCLR 38 MEMORYCLERK_SOSNODE 26 CACHESTORE_SQLCP 11
Y luego algunos más pequeños que suman <30 MB. Me parece extraño -arg- en el formato del comentario.