Update que tarda un huevo

28/09/2007 - 18:51 por David | Informe spam
Muy buenas, utilizo Microsoft SQL Server 2000, el escenario es el siguiente:

(1) TablaConAcumulados [tca]: unos 800 registros

(2) TablaConMovimiento [tcm]s: unos 30.000 registros

(3) VistaCombinada [VC]: Vista de las dos anteriores tablas donde de forma
INSTÁNTANEA SQL Server realiza la unión: muestra los 800 registros de la
TablaConAcumulados mostrando un campo donde ha realizado ciertos cálculos
con los datos de la TablaConMovimientos.

Hasta aquí todo correcto, pero, por necesidades de "rendimiento" (es curioso
por lo que viene ahora) y por un tema de entrega del proyecto, necesito
actualizar un campo de la TablaConAcumulados con los resultados del campo
anterior de la VistaCombinada, esta es la consulta:

UPDATE tca

SET
acumulador
(
SELECT campocalculado
FROM VC

tca.ID1 = VC.ID1
AND

tca.ID2 = VC.ID2
AND

tca.ID3 = VC.ID3
AND

tca.ID4 = VC.ID4
)

Tarda un huevo como 10 minutos, ¿cómo se podria aguilizar?
 

Leer las respuestas

#1 Alejandro Mesa
28/09/2007 - 19:54 | Informe spam
Hola David,

Chequea que ambas tablas tengan un indice por esas columnas y prueba usando
un join.


UPDATE tca
SET
tca.acumulador = VC.campocalculado
from
tca inner join VC
on
tca.ID1 = VC.ID1
AND
tca.ID2 = VC.ID2
AND
tca.ID3 = VC.ID3
AND
tca.ID4 = VC.ID4

Compara los planes de ejecucion.

AMB

"David" wrote:

Muy buenas, utilizo Microsoft SQL Server 2000, el escenario es el siguiente:

(1) TablaConAcumulados [tca]: unos 800 registros

(2) TablaConMovimiento [tcm]s: unos 30.000 registros

(3) VistaCombinada [VC]: Vista de las dos anteriores tablas donde de forma
INSTÁNTANEA SQL Server realiza la unión: muestra los 800 registros de la
TablaConAcumulados mostrando un campo donde ha realizado ciertos cálculos
con los datos de la TablaConMovimientos.

Hasta aquí todo correcto, pero, por necesidades de "rendimiento" (es curioso
por lo que viene ahora) y por un tema de entrega del proyecto, necesito
actualizar un campo de la TablaConAcumulados con los resultados del campo
anterior de la VistaCombinada, esta es la consulta:

UPDATE tca

SET
acumulador >
(
SELECT campocalculado
FROM VC

tca.ID1 = VC.ID1
AND

tca.ID2 = VC.ID2
AND

tca.ID3 = VC.ID3
AND

tca.ID4 = VC.ID4
)

Tarda un huevo como 10 minutos, ¿cómo se podria aguilizar?




Preguntas similares