8645: A time out occurred while waiting for memory resources to execute the query (timeout esperando recursos de memoria para ejecutar la consulta)
SQL Server¿Qué significa?
Una consulta excedió el timeout mientras esperaba en el resource semaphore el memory grant que necesita para ejecutarse. Como la presión de memoria impidió asignar un grant, se canceló la operación.
¿Por qué ocurre?
Consultas concurrentes con uso intensivo de memoria (sorts grandes, hash joins, hash aggregates) consumieron todo el pool de memoria de consultas; las nuevas consultas se pusieron en cola en el semaphore y excedieron el timeout. La causa raíz son estimaciones de memory grant sobredimensionadas (estadísticas obsoletas, malos planes) o memoria insuficiente en el servidor.
Cómo solucionarlo
Identifique las consultas que esperan o retienen memoria con sys.dm_exec_query_memory_grants y las DMV del resource semaphore. Actualice las estadísticas y corrija los planes que provocan memory grants inflados (índices adecuados, mejores estimaciones). Reduzca la concurrencia de las consultas con uso intensivo de memoria; si es necesario, limite los memory grants con Resource Governor. Revise la configuración de memoria del servidor (max server memory).
Más entradas de este motor
- 4922ALTER TABLE ALTER COLUMN failed because one or more objects access this column (falló ALTER TABLE ALTER COLUMN porque uno o más objetos acceden a esta columna)
- 7202Could not find server 'name' in sys.servers (no se encontró el servidor en sys.servers)
- 40501The service is currently busy. Retry the request after 10 seconds (el servicio está ocupado; reintente la solicitud en 10 segundos)
- 8651Could not perform the operation because the requested memory grant was not available (no se pudo realizar la operación porque el memory grant solicitado no estaba disponible)
- 5061ALTER DATABASE failed because a lock could not be placed on database
- 3702Cannot drop database because it is currently in use (no se puede eliminar la base de datos porque está en uso)
- 15138The database principal owns a schema in the database, and cannot be dropped (el principal es propietario de un esquema de la base de datos y no puede eliminarse)