El log se hace muy grande luego de una gran carga de datos

28/11/2003 - 15:21 por c | Informe spam
Luego de una carga de datos mediante DTS bastante grande
el registro de transacciones de la Base de Datos que se
carga queda MUY grande.
Que es lo más conveniente a hacer luego de la carga para
bajar el tamaño del log????
Hay algún problema que el log se haga tan grande? Qué
harían uds?

Preguntas similare

Leer las respuestas

#6 ulises
30/11/2003 - 03:45 | Informe spam
Miguel,

Me intereso tu afirmación, ya que tenía la misma idea que Gustavo, y
lo probé y además de grabarse la misma cantidad de registros en el
LOG el tamaño de la BD crece en la misma proporción, probé cargando
10084 registros en una base de datos recién creado de 2MB en una tabla
de dos campos CHAR(4000) y la BD creció en ambos casos hasta alrededor
350 MB, buscando documentación al respecto encontré que solo no se
graban en el LOG cuando ocurren las cuatro condiciones siguientes :

- si la opcion "select into/bulk copy" está en true
- si la tabla no tiene índices
- si la tabla no está replicada
- si se usa la opción TABLOCK

las probé y pude obtener que a pesar que se graban mayor cantidad de
registros en el LOG (alrededor de 15000) el tamaño creció solo hasta
alrededor de 82 MB, lo que se nota en el LOG es que los registros
ROW_INSERTED son reemplazados mayormente por registros SET_BITS,
SET_FREE_SPACE.

Saludos,
Ulises

On Fri, 28 Nov 2003 23:32:14 +0100, "Miguel Egea"
wrote:

Hola Gustavo hay algunas confusiones con esto y me gustaría que las viesemos
en detalle, ya que aunque eso es lo que 'parece' luego no es así, He probado
este script en northwind (ojo que borra la tabla order details)
alter database Northwind set recovery full
go
backup log Northwind with truncate_only
go
select *from ::Fn_dblog(null,null)
go
bulk insert [order details] from 'c:\salida.csv' with( FIELDTERMINATOR=',')
go
select *from ::Fn_dblog(null,null)
go
truncate table [order details]
go
alter database Northwind set recovery bulk_logged
go
backup log Northwind with truncate_only
go
select *from ::Fn_dblog(null,null)
go
bulk insert [order details] from 'c:\salida.csv' with( FIELDTERMINATOR=',')
go
select *from ::Fn_dblog(null,null)
go
truncate table [order details]
go

y demuestra que no es exactamente así. Además con el modo de recuperaciŽn
bulk_logged si que funciona así con comandos como BCP pero no bulk insert
sino no inserción masiva mediante BCP, creo que buena parte de la culpa la
tienen las traducciones al castellano. Sin embargo, con el modo de
recuperación completo, siempre se registran en el log las inserciones
incluso con bcp.

Saludos
Respuesta Responder a este mensaje
#7 Miguel Egea
30/11/2003 - 12:44 | Informe spam
Tiene sentido, muchas gracias Ulises. Quizá haga un artículo para portalsql
con el resumen de todo el hilo.


=Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.
Brigada Anti-Cursores
Aviso de Seguridad
http://www.microsoft.com/spain/tech...9-USER.asp
==


"ulises" escribió en el mensaje
news:
Miguel,

Me intereso tu afirmación, ya que tenía la misma idea que Gustavo, y
lo probé y además de grabarse la misma cantidad de registros en el
LOG el tamaño de la BD crece en la misma proporción, probé cargando
10084 registros en una base de datos recién creado de 2MB en una tabla
de dos campos CHAR(4000) y la BD creció en ambos casos hasta alrededor
350 MB, buscando documentación al respecto encontré que solo no se
graban en el LOG cuando ocurren las cuatro condiciones siguientes :

- si la opcion "select into/bulk copy" está en true
- si la tabla no tiene índices
- si la tabla no está replicada
- si se usa la opción TABLOCK

las probé y pude obtener que a pesar que se graban mayor cantidad de
registros en el LOG (alrededor de 15000) el tamaño creció solo hasta
alrededor de 82 MB, lo que se nota en el LOG es que los registros
ROW_INSERTED son reemplazados mayormente por registros SET_BITS,
SET_FREE_SPACE.

Saludos,
Ulises

On Fri, 28 Nov 2003 23:32:14 +0100, "Miguel Egea"
wrote:

>Hola Gustavo hay algunas confusiones con esto y me gustaría que las


viesemos
>en detalle, ya que aunque eso es lo que 'parece' luego no es así, He


probado
>este script en northwind (ojo que borra la tabla order details)
>alter database Northwind set recovery full
>go
>backup log Northwind with truncate_only
>go
>select *from ::Fn_dblog(null,null)
>go
>bulk insert [order details] from 'c:\salida.csv' with(


FIELDTERMINATOR=',')
>go
>select *from ::Fn_dblog(null,null)
>go
>truncate table [order details]
>go
>alter database Northwind set recovery bulk_logged
>go
>backup log Northwind with truncate_only
>go
>select *from ::Fn_dblog(null,null)
>go
>bulk insert [order details] from 'c:\salida.csv' with(


FIELDTERMINATOR=',')
>go
>select *from ::Fn_dblog(null,null)
>go
>truncate table [order details]
>go
>
>y demuestra que no es exactamente así. Además con el modo de recuperaci´n
>bulk_logged si que funciona así con comandos como BCP pero no bulk insert
>sino no inserción masiva mediante BCP, creo que buena parte de la culpa


la
>tienen las traducciones al castellano. Sin embargo, con el modo de
>recuperación completo, siempre se registran en el log las inserciones
>incluso con bcp.
>
>Saludos

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida