Saltar al contenido

El registro de transacciones de la base de datos ‘tempdb’ está lleno debido a ‘ACTIVE_TRANSACTION’

Posterior a de nuestra extensa búsqueda de información pudimos resolver esta interrogante que tienen ciertos los lectores. Te regalamos la respuesta y esperamos resultarte de mucha ayuda.

Solución:

Puede buscar todos los objetos temporales con un simple SELECT * FROM tempdb..sysobjects WHERE name LIKE '%AllClasses%'

Para arreglarlo solo ejecuta una vez:

BEGIN TRANSACTION
    DROP TABLE #AllClasses
COMMIT TRANSACTION

Si aún no puede eliminarlo, simplemente verifique las sesiones de zombies con SELECT * FROM sys.dm_exec_sessions y matarlo con KILL session_id.

Este error ocurre cuando realiza consultas onerosas en la base de datos antes de que se realice una confirmación.

Por ejemplo, si intentas hacer una subconsulta con unos cálculos analíticos sobre una tabla con millones de registros y luego la actualizas, la tempdb crece en dimensiones (debido a los cálculos necesarios) hasta alcanzar las dimensiones máximas, dando ese error

Las posibles soluciones son:

  • Reduzca las operaciones en segmentos siempre que sea posible, por ejemplo, haciendo una actualización en un conjunto reducido de filas (basado en algunos keys)
  • Aumente las dimensiones de tempdb (obviamente si hay suficiente espacio en disco)

Tienes la posibilidad recomendar este post si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *