Cómo solucionar el error 8645 de SQL Server

Resumen

En este artículo paso a paso se describe cómo solucionar el error 8645 de SQL Server. Puede recibir el error 8645 cuando hay mucha carga de trabajo o cuando los servidores son memoria sobreutilizada.

Síntomas

Verá el siguiente mensaje de error 8645 esporádicamente:
Error 8645: Se ha producido un tiempo de espera mientras se esperaban recursos de memoria ejecutar la consulta. Vuelva a ejecutar la consulta.

Además, también puede ver uno o varios de los síntomas siguientes:

  • Cuando nuevos usuarios intentan conectarse a SQL Server, reciben un mensaje de error "Error de inicio de sesión".
  • Los usuarios están desconectados y reciben diversos mensajes de error.
  • Uso de la CPU es muy alto en el servidor.
  • Cuando se ejecuta

    select * from sysprocesses
    verá que los SPID tienen un tipoDeEspera de 0 x 40 o 0x0040 y un últimoTipoDeEspera de RESOURCE_SEMAPHORE.
  • El objeto SQLServer: administrador de Monitor de sistema muestra un valor distinto de cero para Concesiones de memoria pendientes.
  • Analizador de SQL muestra el suceso "Advertencias de ejecución" que incluya el "esperar memoria" o el texto "Espere para memoria Timeout".

Causas

El mensaje de error 8645 se genera cuando las consultas requiere mucha memoria, como las operaciones de ordenación y de hash, se ponen en cola y no puede obtener la memoria necesaria antes de un período de tiempo de espera. SQL Server espera durante un período de tiempo que se basa en el valor de configuración query wait . De forma predeterminada, este valor se establece en -1, lo que significa que SQL Server espera a 25 veces el costo estimado de la consulta. Si modifica este valor a un número no negativo , SQL Server espera durante el número de segundos que especifique en el valor de la opción query wait .



También puede recibir el error 8645 bajo las siguientes circunstancias:

  • Tiene consultas que no están correctamente optimizadas y, por tanto, consumen más recursos de los necesarios.
  • La memoria asignada a SQL Server no es lo suficientemente grande como para la carga de trabajo que se ejecuta en SQL Server.
  • Todos los resultados no se procesan inmediatamente y, por tanto, la memoria se retiene más tiempo del necesario.

Pasos para solucionar problemas

Puede utilizar uno o varios de los siguientes pasos para ayudar a reducir las posibilidades de que el error 8645.


  1. Intente optimizar el rendimiento de las consultas de larga ejecución. Para identificar las consultas de larga ejecución, ejecute una traza del analizador de SQL que capture los contadores siguientes:

    Analizador SQL:

    • Errores y advertencias: excepción
    • Misc: Plan de ejecución
    • TSQL: Lote finalizado
    También puede ejecutar al Asistente para optimización de índices para identidad y optimizar las consultas de larga ejecución. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    311826 INF: Index Tuning Wizard Best Practices
  2. Mantener las estadísticas de distribución al día, especialmente después de grandes cantidades de modificaciones de datos. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    195565 INF: funcionamiento de SQL Server 7.0 y Autostat de SQL Server 2000 en
  3. Busque cualquier presión de memoria en SQL Server capturando una traza del Monitor de sistema. Capture los contadores siguientes para identificar cualquier sobreutilización de memoria en SQL Server.

    Monitor de sistema:

    • SQLServer:Lock Requests/sec
    • SQLServer: Administrador de
    • Proceso: bytes privados
    • Bytes de conjunto de trabajo del proceso:
    Para aliviar la presión de memoria, asigne más memoria a SQL Server mediante el aumento de la opción de configuración max server memory . Puede agregar más memoria física al equipo y también puede utilizar el parámetro/3 GB .

    Si está ejecutando SQL Server Enterprise Edition, considere el uso de la opción AWE para aumentar la memoria que puede utilizar SQL Server. En algunos casos, es aconsejable aumentar el número de procesadores del equipo, lo que también puede aumentar el tamaño de archivo de paginación de memoria virtual. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    197379 configurar archivos de paginación para la optimización y recuperación en Windows Server 2003, en Windows 2000 y en Windows NT

    197379 configurar archivos de paginación para la optimización y recuperación
  4. Si está ejecutando SQL Server 7.0, pruebe deshabilitar el paralelismo para SQL Server 7.0 desactivando la opción de configuración de la opción max degree of parallelism . Esto puede afectar al rendimiento de determinadas consultas en paralelo, pero esto también aumenta la simultaneidad de consultas de SQL Server 7.0 y esto ayuda a reducir las posibilidades de que el error 8645.
  5. Asegúrese de que los clientes SQL Server procesan inmediatamente todos los conjuntos de resultados. SQL Server no puede liberar los recursos dedicados a una consulta hasta que reciba la notificación del cliente que se han procesado todos los conjuntos de resultados. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    180775 INF: efectos en el rendimiento de SQL Server de los clientes
  6. Compruebe la configuración de SQL Server para los valores adecuados. Óptimos valores opciones como Max Server Memory o Query Wait pueden aumentar las posibilidades de que se produzca este error. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    El 319942 Cómo: determinar los valores de configuración de SQL Server apropiada

Referencias

Para obtener información adicional, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
243588 Cómo: solucionar problemas de rendimiento de consultas Ad-Hoc
311826 INF: Index Tuning Wizard Best Practices
Para obtener información adicional, consulte el tema "Solucionar problemas 8645" SQL Server Books Online.

Propiedades

Id. de artículo: 309256 - Última revisión: 22 ene. 2017 - Revisión: 2

Comentarios