Compartir a través de


Error OutOfMemoryException al ejecutar una consulta en SQL Server Management Studio (SSMS)

Este artículo le ayuda a resolver el problema que se produce cuando se usa SQL Server Management Studio (SSMS) para ejecutar una consulta SQL que devuelve una gran cantidad de datos.

Versión del producto original: SQL Server
Número de KB original: 2874903

Síntomas

Cuando se usa SSMS para ejecutar una consulta SQL que devuelve una gran cantidad de datos, recibirá un mensaje de error similar al siguiente:

Error al ejecutar el lote. El mensaje de error es: se produjo la excepción del tipo "System.OutOfMemoryException".

Causa

Este problema se produce porque SSMS no tiene memoria suficiente para asignar resultados grandes. SSMS es un proceso de 32 bits. Por lo tanto, se limita a 2 GB de memoria virtual en modo de usuario. SSMS impone un límite artificial sobre la cantidad de texto que se puede mostrar por campo de base de datos en la ventana de resultados. Este límite es de 64 KB en modo cuadrícula y 8 KB en modo texto. Si el conjunto de resultados es demasiado grande, la memoria necesaria para mostrar los resultados de la consulta puede superar el límite de 2 GB del proceso de SSMS. Por lo tanto, un conjunto de resultados grande puede provocar el error mencionado en la sección Síntomas .

Solución alternativa

Para solucionar este problema, pruebe uno de los métodos siguientes.

Método 1: Salida de los resultados como texto

Configure la ventana de consulta para generar los resultados de la consulta como texto. Una salida de texto usa menos memoria que la cuadrícula y puede ser suficiente para mostrar los resultados de la consulta. Para realizar este cambio, siga estos pasos:

  1. Haga clic con el botón derecho en la ventana de consulta.
  2. Seleccione Resultados para.
  3. Seleccione Resultados en texto.

Método 2: Salida de los resultados a un archivo

Configure la ventana de consulta para generar los resultados de la consulta en un archivo. Una salida de archivo usa una cantidad mínima de memoria. Esto reserva más memoria para almacenar el conjunto de resultados. Para realizar este cambio, siga estos pasos:

  1. Haga clic con el botón derecho en la ventana de consulta.
  2. Seleccione Resultados para.
  3. Seleccione Resultados a archivo.
  4. Ejecute la consulta y, a continuación, seleccione la ubicación en la que guardar el archivo de resultados.

Método 3: Uso de sqlcmd

Use la utilidad sqlcmd en lugar de SSMS para ejecutar las consultas SQL. Este método permite que las consultas se ejecuten sin los recursos necesarios para la interfaz de usuario de SSMS. Además, puede usar la versión de 64 bits de Sqlcmd.exe para evitar la restricción de memoria que afecta al proceso de SSMS de 32 bits.