la actualización del servidor sql afecta a 0 registros pero llena el registro de transacciones
Frecuentes
Visto 398 veces
0
Tengo una instrucción SQL que actualiza los registros de una tabla si la consulta devuelve algún registro. La consulta solo devuelve registros si es necesario actualizarlos. Cuando ejecuto la selección en la consulta, no obtengo registros, por lo que cuando se ejecuta la actualización, no debería haber registros actualizados.
El problema que tengo es que la consulta en el procedimiento almacenado no finalizará porque el registro de transacciones se llena antes de que se complete la consulta. No me preocupa que el registro de transacciones se llene en este momento.
Mi pregunta es, si no se actualizan los registros, ¿por qué se escribe algo en el registro de transacciones?
2 Respuestas
0
Necesitamos más información antes de que este problema pueda ser resuelto...
Remus tiene una gran idea para mirar las entradas en el archivo de registro.
Ejecutar DBCC SQLPERF(logspace) le indicará qué tan lleno está el archivo de registro.
Borre el archivo de registro mediante una copia de seguridad del registro de transacciones. Esto supone que el modelo de recuperación es COMPLETO y se ha realizado una copia de seguridad COMPLETA.
Vuelva a ejecutar el procedimiento almacenado de actualización. Mire las entradas del archivo de registro de transacciones.
Una copia del procedimiento almacenado y las definiciones de la tabla sería genial. Buscar otros procesos (sp_who2) durante la ejecución que puedan llenar el registro es otro buen lugar para buscar.
Cualquier desencadenante que pueda causar actualizaciones, eliminaciones o inserciones puede aumentar el tamaño del archivo de registro, sugerido por Martin.
Buena suerte.
Respondido el 11 de Septiembre de 13 a las 15:09
Parece que el problema estaba en la unión. Fue agotador unir tantos registros que tempdb se estaba llenando hasta el punto de que no había más espacio en el disco. - RUEMAQUINA
0
Parece que el problema estaba en la combinación. Fue agotador unir tantos registros que tempdb se estaba llenando hasta el punto de que no había más espacio en el disco.
Respondido el 12 de Septiembre de 13 a las 19:09
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas sql sql-server transaction-log or haz tu propia pregunta.
Hay alguna
UPDATE
gatillo en la mesa? - Martin Smith¿Qué error estás recibiendo? ¿Está seguro de que está llenando el registro de transacciones y no tempdb? - UnhandledExcepSean
¿Qué operaciones llenan el registro? En concreto, ¿qué tipo de
LOP_XXX
las operaciones aparecen cuando consulta conSELECT ... FROM fn_dblog(...)
? - Remus RusanuTal vez el registro de tempdb se llene. Por favor, publique el mensaje de error completo. - usr
probablemente se deba a un mal plan de consulta en la ejecución. si sus tablas están indexadas, asegúrese de que su consulta esté configurada para usarlas; de lo contrario, debería considerar agregar algunos índices no agrupados en las columnas de la consulta. - mrtig