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
Respuesta Responder a este mensaje
#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:%
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


Respuesta Responder a este mensaje
#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:%
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


Respuesta Responder a este mensaje
#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
Respuesta Responder a este mensaje
#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:%
Fredy,

en las propiedades de la BBDD tenes (solapa Options) para habilitar o no


el
mantenimiento automatico de las estadisticas.
Deshabilitalo. Normalmente, deberia estar habilitado, y las mismas se van
armando a medida que se cargan las tablas, pero como aca ya tenes las


tablas
cargadas, este proceso demorara mas ...

Saludos !

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

Buenos Aires - Argentina


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida