No le des demasiada importancia a los porcentajes.
Fijate si dice table scan o index scan.
Usa el asistente que te da sugerencias de indices.
Fijate si podes cambiar el orden en que se hacen las actualizaciones.
Fijate si en lugar de hacer select .... into #Tmp1.... from para crear
tablas temporales no haces creat table #Tmp1 insert .....Select.

Saludos



On 11/30/06, Esteban Grinberg <[EMAIL PROTECTED]> wrote:

Estuve revisando los indices y poniendo donde hacia falta para reducir los
SCAN. Tuve un buen resultado, reduje en aproximadamente un 90% los
deadlocks. Me falta descubrir donde esta 10% faltante.
Ahora mi pregunta es la siguiente, viendo el plan de ejecución, veo que se
eliminaron los table scan y ahora busca por indice, sin embargo me dice
que
su costo es de 600% en algunas instrucciones y en otros lugares, me dice
0%.
Que significa este porcentaje y tengo que preocuparme si aparece en 600%??

Gracias!


-----Mensaje original-----
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jose Mariano
Alvarez
Enviado el: Jueves, 30 de Noviembre de 2006 11:04
Para: dbms List Member
Asunto: [dbms] deadlock

Eso es porque evistaste el SCAN que bloqueaba toda o parte de la tabla
que justamente tenia tomada otro proceso !!!!!!!!!!!!

Saludos

--
--------------------------------
Atte.
Ing. Jose Mariano Alvarez


On 11/30/06, Pablo A. Allois <[EMAIL PROTECTED]> wrote:
> Una de las situaciones en las que encontre deadlock ... Se daba porque
los
> updates demoraban dos segundos ... Y cuando tenia concurrencia ... Uno
de
> los UPDATES moria por deadlock.
>
> Eso lo encontre con el profiler, y la solucion fue UTILIZAR UN INDICE.
>
>
>
> -----Mensaje original-----
> De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jose Mariano
> Alvarez
> Enviado el: Miércoles, 29 de Noviembre de 2006 05:21 p.m.
> Para: dbms List Member
> Asunto: [dbms] deadlock
>
> Aunque compres un servidor mas potente el problema va a seguir
existiendo.
> El SQL detecta el deadlock y mata al proceso que menos trabajo hizo a
menos
> que otro de los procesos se proponga como victima del deadlock.
>
> Atrapa el error y relanzalo.
>
> Igualmente el problema se debe a esperas cruzadas de recursos que estan
> bloqueados por el otro proceso.
>
> Deberias cambiar la programacion del mismo.
>
> Tenes cursores y de que tipo ?
>
> Saludos
> --
> --------------------------------
> Atte.
> Ing. Jose Mariano Alvarez
>
>
>
> On 11/29/06, Esteban Grinberg <[EMAIL PROTECTED]> wrote:
> >
> >
> >
> > Gente, estoy teniendo un problema con el SQLServer 2000. Tenemos un
> proceso
> > que escribe consulta y escribe en varias tablas, tarda aproximadamente
> unos
> > 20 segundos. El tema que ahora que lo subimos a producción, estamos
> teniendo
> > muchas consultas y de vez en cuando el SQL me tira el siguiente error:
> >
> >
> >
> > "Transaction (Process ID 76) was deadlocked on lock resources with
another
> > process and has been chosen as the deadlock victim. Rerun the
transaction"
> >
> >
> >
> > Mas allá de comprar un servidor mas potente, alguien tiene alguna
> sugerencia
> > para evitar este error o aunque sea, disminuir su frecuencia?
> >
> >
> >
> > Saludos,
> >
> > Esteban
>
>
>







--
--------------------------------
Atte.
Ing. Jose Mariano Alvarez

Responder a