UPDATE

03/04/2007 - 18:37 por Penta | Informe spam
Estimados.
Uso SQL 2000

Tengo 2 tablas, donde 1 de ellas es temporal

creo indice
IF EXISTS (SELECT name FROM sysindexes
WHERE name = 'FK_TEMP3')
DROP INDEX #temp3.FK_TEMP3
GO

CREATE INDEX FK_TEMP3
ON #temp3 (codcli)
GO

Las tablas tienen 2 campos

ID varchar(10)
asistencia int

en este update se demora demasiado, la pare en 3 minutos , tiene
12.000 registros actualziables.

Update mt_estconsolidadas_pruebas
SET asistencia=t.Asistencia_Ponderada
From
mt_estconsolidadas E Left Join #temp3 T
On e.codcli=t.codcli

el plan de ejecucion:

Me da paralelismos y table spool entre otras cosas, se que me pediran
que añada dicho plan aca en modo texto, pero no se como hacerlo. solo
aparecen los iconos.

Les agradecere su inmensa ayuda.
Penta.

Preguntas similare

Leer las respuestas

#6 Javier Loria
04/04/2007 - 00:51 | Informe spam
Hola:
La clave es paralelismo, o sea la cantidad de procesadores que
simultaneamente (paralelamente) trabajan en la consulta. Con este parametro
se fija en 1. Nos cuentas como te fue?
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Penta" wrote in message
news:
MAXDOP number

Suplanta la opción de configuración max degree of parallelism (grado
máximo de paralelismo) de sp_configure sólo para la consulta que
especifica esta opción. Se pueden aplicar todas las reglas semánticas
utilizadas con la opción de configuración max degree of parallelism
cuando se utiliza la sugerencia de consulta MAXDOP. Para obtener más
información, consulte Opción max degree of parallelism.

No me quedo del todo claro :(
Respuesta Responder a este mensaje
#7 Penta
04/04/2007 - 15:41 | Informe spam
Hola.
Con la opcion no obtuve ninguna mejora, mas bien un aumento de 10 seg.

Sin Opción 3:48
Con Opción 3:58

Aún considero que es demasiado para un update de 12.000 registros o
no ??

Atte.
Penta.
Respuesta Responder a este mensaje
#8 Javier Loria
04/04/2007 - 15:56 | Informe spam
Hola:
A mi me parece una eternidad, con el hardware actual y asumiendo 1000
cosas, menos de 5 segundos seria razonable.
Yo buscaria en:
Cuantas columnas y de que tipo son las columnas de esa tabla?.
Muchisimos indices?
Triggers?
Problemas de disco?
Mi apuesta es por triggers.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Penta" wrote in message
news:
Hola.
Con la opcion no obtuve ninguna mejora, mas bien un aumento de 10 seg.

Sin Opción 3:48
Con Opción 3:58

Aún considero que es demasiado para un update de 12.000 registros o
no ??

Atte.
Penta.
Respuesta Responder a este mensaje
#9 Manuel Etcheto
04/04/2007 - 21:46 | Informe spam
Hola:
Creo que el problema es que está haciendo el update con un LEFT JOIN entre
una segunda y una tercera tablas, no la tabla a actualizar...

El habla de 12000 filas, pero puede estar haciendo millones de "vueltas".

Salu2
Manuel


"Javier Loria" escribió en el mensaje
news:
Hola:
A mi me parece una eternidad, con el hardware actual y asumiendo 1000
cosas, menos de 5 segundos seria razonable.
Yo buscaria en:
Cuantas columnas y de que tipo son las columnas de esa tabla?.
Muchisimos indices?
Triggers?
Problemas de disco?
Mi apuesta es por triggers.
Saludos,


Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

"Penta" wrote in message
news:
Hola.
Con la opcion no obtuve ninguna mejora, mas bien un aumento de 10 seg.

Sin Opción 3:48
Con Opción 3:58

Aún considero que es demasiado para un update de 12.000 registros o
no ??

Atte.
Penta.

Respuesta Responder a este mensaje
#10 Jose Mariano Alvarez
08/04/2007 - 23:29 | Informe spam
En el post <en$,
DIJO .
Hola:
Creo que el problema es que está haciendo el update con un LEFT JOIN entre
una segunda y una tercera tablas, no la tabla a actualizar...

El habla de 12000 filas, pero puede estar haciendo millones de "vueltas".

Salu2
Manuel


"Javier Loria" escribió en el mensaje
news:
> Hola:
> A mi me parece una eternidad, con el hardware actual y asumiendo 1000
> cosas, menos de 5 segundos seria razonable.
> Yo buscaria en:
> Cuantas columnas y de que tipo son las columnas de esa tabla?.
> Muchisimos indices?
> Triggers?
> Problemas de disco?
> Mi apuesta es por triggers.
> Saludos,
>
>
> Javier Loria
> Costa Rica (MVP)
> Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
> que pueda ser copiado y pegado al Query Analizer.
> La version de SQL y Service Pack tambien ayuda.
>
> "Penta" wrote in message
> news:
> Hola.
> Con la opcion no obtuve ninguna mejora, mas bien un aumento de 10 seg.
>
> Sin Opción 3:48
> Con Opción 3:58
>
> Aún considero que es demasiado para un update de 12.000 registros o
> no ??
>
> Atte.
> Penta.
>






Exacto, esta haciendo un producto cartesiano de la tabla
mt_estconsolidadas_pruebas con el resultado del join entre
mt_estconsolidadas y #temp3 que tiene la misma cantidad de registros
que mt_estconsolidadas.

Nada tiene que ver la temporal y supongo que los indices tampoco.




Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida