13 votos

SQL Server 2005: no Hay memoria del sistema insuficiente para ejecutar esta consulta

Uno de nuestros Servidores de SQL, que ha estado funcionando estable durante bastante tiempo (años), ha sido recientemente tirar errores de memoria insuficiente. Desde el Registro de Sucesos de Aplicación, podemos ver:

Evento ID: 701

Descripción: no Hay memoria del sistema insuficiente para ejecutar esta consulta.

Nuestro equipo que se encarga de este servidor está compuesta en su mayoría de los desarrolladores que se duplican en el sysadmin deberes. Sin embargo, nuestra principal especialización es el desarrollo. Dicho esto, estamos en una pérdida sobre cómo ir sobre la solución de este. Hemos estado recorriendo foros y otras cosas y no he encontrado nada que coincida con

Por lo tanto, aquí hay algunos detalles más para ayudar en la solución de problemas:

  • Nuestra memoria de servidor Mínima se establece en 0.
  • Nuestra memoria Máxima del servidor se establece para el año 2000.
  • Total de Memoria Física es 3,325.85 MB (de sysinfo).
  • Total de Memoria Virtual es 7.10 GB (de sysinfo).
  • No estábamos usando ASOMBRO para asignar memoria, pero ahora estamos a ver si hace una diferencia.
  • Este error se produce por un trabajo que realizar una copia de seguridad del registro de transacciones, no se ejecuta una consulta.
  • Tenemos muchos servidores vinculados. Los tipos de bases de datos en el otro lado son de SQL Server (2005 y 2000), Oracle 10g, y OSI sistemas de PI.
  • Es intermitente en este punto. No podemos parecen correlacionar cualquier momento o evento a los errores.
  • Por supuesto, al reiniciar parece que se vaya por un tiempo, lo cual tiene sentido debido a la naturaleza de la mensaje de error.
  • Este servidor triples como un servidor de aplicaciones (un par de Servicios de Windows) y un servidor web, así como el servidor de base de datos.

EDITAR:

Estamos en SP3. La mayoría de los puestos se encontró fueron pre SP1, que no se aplica a nosotros.

SELECT  SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

devuelve

9.00.4035.00 Standard Edition SP3

7voto

CPU_BUSY Puntos 1978

Este servidor triples como un servidor de aplicaciones (un par de Servicios de Windows) y un servidor web, así como el servidor de base de datos.

Yo le pondría su min de la memoria - es muy posible que estos otros procesos están "robando" memoria de SQL

Usted podría ejecutar un registro de contador mediante perfmon para confirmar y/o a dar más información para identificar cuál es el verdadero problema.

4voto

Nik Majdan Puntos 151

Me gustaría sugerir el uso de la-g parámetro de inicio así. Parece que funciona para la mayoría de la gente probablemente va a funcionar para usted también. Mi única preocupación sería que el problema subyacente no puede ser resuelto. Por ejemplo, si hay una pérdida de memoria debido a un servidor vinculado, y el MTL es mayor a la de 512Mb va a ser sólo un período más largo entre los problemas de memoria? No sé la respuesta a eso, pero yo tiendo a estar de acuerdo con UndertheFold en que un monitor de rendimiento, puede ser un buen comienzo.

3voto

Bob Puntos 34449

Esto podría estar relacionado con una pérdida de memoria de un servidor vinculado al conductor, de acuerdo a este hilo de los foros de:

La siguiente es lo que Microsoft dijo nosotros.

Al parecer, el procesamiento de datos a través de una servidor vinculado specifially la fox pro controlador provoca pérdida de memoria que se acumula con el tiempo.

0voto

Mark Hewitt Puntos 61

El mensaje de error "no Hay suficiente memoria en el sistema para ejecutar esta consulta." se refiere al Espacio de Direcciones Virtuales (EAV) no está disponible y no de la memoria en el sentido convencional, es decir, dentro del proceso de SQL Server espacio.

Dado que sólo está ejecutando con 3GB en este server y SQL Server ha sido asignada de hasta 2 gb, esto significa que el sistema operativo y lo que es más importante de cualquier otra cosa en la caja tiene menos de 1 gb para jugar con. Eso no es un montón de memoria.

Si este problema es, de hecho, como resultado de una pérdida de memoria es entonces la VAS fuera del proceso de SQL Server espacio (memToLeave) que se consume.

Me gustaría sugerir el uso de la-g parámetro de inicio para asignar más memoria a la memToLeave parte.

Consulte el siguiente artículo para más información:

http://www.johnsansom.com/sql-server-memory-configuration-determining-memtoleave-settings/

También puede que desee reducir el máximo de memoria de configuración de SQL Server, pero me gustaría hacerlo como último recurso.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: