Problemas con INSERT...

11/08/2003 - 04:49 por Fredy \(Co\) | Informe spam
Señores, muy buenas noches...
Tengo una base de datos que presentó problemas... los backups no fueron
tomados adecuadamente.. y toco reconstruirla casi que a mano..

La cuestion es que quedo igual a como estaba antes del problema... pero una
instruccion INSERT en una tabla que antes se demoraba entre1 1/2 y 2
horas... ahora toma casi 10!!!

Dicha instruccion es identica a la original.. se tienen scripts del SP que
la lanza... pero realmente no entiendo porque toma tanto tiempo ahora!!! la
tabla destino tenia FK con otras tablas (es un datamart de inventarios en
esquema estrella y esa es la tabla de hechos) pero se los borre todos a ver
si mejoraba y nada!!!

Ya realice una recompilacion del SP que lanza la instruccion pero sigue lo
mismo... la verdad no sé que mas hacer... es supremamente urgente cargar
todos los datos... y corregir ese problema!!

Agradezco de antemano su colaboración...

Saludos desde Colombia...

Fredy (Co)

Preguntas similare

Leer las respuestas

#1 Emilio Boucau
11/08/2003 - 15:41 | Informe spam
Fredy,

como estan los indices de las tablas afectadas ? Puede ser que este poniendo
al dia las estadisticas, tambien ... Desactiva el modo automatico y fijate
... Por supuesto, mira el quey plan de ese Stored Procedure y y fijate donde
tenes el cuello de botella.

Saludos !

Emilio Boucau
Microsoft MVP SQL Server
http://www.portalsql.com
PASS Spanish Group
http://www.sqlpass.org

Buenos Aires - Argentina
#2 Fredy \(Co\)
11/08/2003 - 16:09 | Informe spam
la tabla destino, donde se quiere hacer el INSERT tiene indices NONCLUSTERED
en cada uno de los FK hacia las tablas de dimensiones o relacionadas.

Disculpa, pero no entiendo lo del modo automático.. a que te refieres???





"Emilio Boucau" wrote in message
news:%
Mostrar la cita
poniendo
Mostrar la cita
donde
Mostrar la cita
#3 Fredy \(Co\)
11/08/2003 - 16:24 | Informe spam
Pregunta:

Tendrá algo que ver el mod de log anteriormente estaba en modo Simple y
ahora lo revisé y esta modo Full
Lo extraño es que no es una operación de BULK COPY sino un INSERT normal...


"Emilio Boucau" wrote in message
news:%
Mostrar la cita
poniendo
Mostrar la cita
donde
Mostrar la cita
#4 Emilio Boucau
11/08/2003 - 16:35 | Informe spam
El modo de la base te condiciona los tipos de backups y otras operaciones
(log-shipping) que se puedan hacer sobre ella.

Saludos !

Emilio Boucau
Microsoft MVP SQL Server
http://www.portalsql.com
PASS Spanish Group
http://www.sqlpass.org

Buenos Aires - Argentina
#5 Fredy \(Co\)
11/08/2003 - 18:46 | Informe spam
Esta es la instruccion INSERT que se está usando para cargar los datos...
existen indices por cada campo Id en la tabla [Movimiento inventarios]



INSERT INTO [Movimiento Inventarios]
([IdProducto], [IdTercero], [IdBodega], [IdTiempo], [IdTipoInventario],
[IdTipoTransaccion], [IDMovilización], [IDCentroFac], [Cantidad Mov Unid],
[Cantidad Mov Cajas], [Cantidad Kilos pagados], [Cantidad Kilos
movilizados], [Costo Mov], [Flete pagado], [Flete calculado], [Lote], [Fecha
carga])
SELECT

[IdProducto] = CONVERT(int, [IdProducto]),
[IdTercero] = CONVERT(int, [IdTercero]),
[IdBodega] = CONVERT(int, [IdBodega]),
[IdTiempo] = CONVERT(int, [IdTiempo]),
[IdTipoInventario] = CONVERT(int, [IdTipoInventario]),
[IdTipoTransaccion] = CONVERT(int, [IdTipoTransaccion]),
[IdMovilización] = CONVERT(int, [IdMovilización]),
[IdCentrofac] = CONVERT(int, [IdCentrofac]),
[Cantidad Mov unid] = CONVERT(decimal(19, 4), TMP.[Cantidad Mov unid]),
[Cantidad Mov Cajas] = CONVERT(decimal(19, 4), TMP.[Cantidad Mov cajas]),
[Cantidad Kilos pagados] = CONVERT(decimal(19, 4), TMP.[Cantidad Kilos
pagados]),
[Cantidad Kilos movilizados] = CONVERT(decimal(19, 4), TMP.[Cantidad Kilos
movilizados]),
[Costo Mov] = CONVERT(money, TMP.[Costo Mov]),
[flete pagado] = CONVERT(money, TMP.[flete pagado]),
[flete calculado] = CONVERT(money, TMP.[flete calculado]),
[Lote] = 1, [Fecha carga] = GETDATE()

FROM [TMPMovimiento Inventarios] TMP
INNER JOIN [Bodega] TD1
ON (TD1.[Código bodega] = LEFT(TMP.[Código bodega], 15))
INNER JOIN [Producto] TD2
ON (TD2.[Código producto] = LEFT(TMP.[Código producto], 15))
INNER JOIN [Terceros] TD3
ON (TD3.[Código tercero] = LEFT(TMP.[Código tercero], 20))
INNER JOIN [Tiempo] TD4
ON (TD4.[Fecha] = CONVERT(datetime, TMP.[Fecha], 101))
INNER JOIN [Tipos de inventarios] TD5
ON (TD5.[Código tipo] = LEFT(TMP.[Código tipo], 15))
INNER JOIN [Tipos Transacción] TD6
ON (TD6.[Código transacción] = LEFT(TMP.[Código transacción], 15))
INNER JOIN [Movilización] TD7
ON (TD7.[CodMovilización] = LEFT(TMP.[CodMovilización], 15))
INNER JOIN [Centro de facturación] TD8
ON (TD8.[CodCentroFac] = LEFT(TMP.[CodCentroFac], 15))
WHERE TipoInconsistencia = 0

"Emilio Boucau" wrote in message
news:%
Mostrar la cita
el
Mostrar la cita
tablas
Mostrar la cita
Ads by Google
Search Busqueda sugerida