Me acaban de decir algo realmente importante que no sabía, me dijeron que este 
SP ejecutado con el Query Analyzer tarda 20 minutos, pero con la aplicación 
.NET (utilizando ADO.NET) se queda indefinidamente. Entonces, como se está 
usando un String de Conexión a la Base de Datos normal, ¿podría ser que el 
String necesite algún otro parámetro especial?

 

 

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jose Mariano Alvarez
Enviado el: Miércoles, 10 de Septiembre de 2008 10:42 a.m.
Para: Ignacio Ayerbe
Asunto: [dbms] Consulta sobre Performance de SP

 

Solo te podria servir crear un indice clustered en la temporar por los campos 
adecuados para evitar los sort intermedios y algunos table scans.

 


-------------------------------- 
Atte.
Ing. Jose Mariano Alvarez
SQL Total Consulting



2008/9/10 Ignacio Ayerbe <[EMAIL PROTECTED]>

Quizás me exprese mal con el tema de recorrer. Te paso más o menos lo que hace:

 

Creo una tabla temporal:

 

create table #p1 (id_tipo_iden int, numero_iden nvarchar(11), 
id_situacion_aplicar int, id_situacion_cendeu int, id_situacion_entidad int)

 

 

Luego hago un INSERT INTO sencillo:

 

insert into #p1

      select a.id_tipo_iden,

             a.numero_iden,

             ...

 

Y por ultimo ejecuto varios (28 en total) UPDATEs de este tipo:

 

update      #p1

      set   id_situacion_aplicar = 1

      where id_situacion_entidad < id_situacion_cendeu

            and

            (id_situacion_cendeu = 21 or id_situacion_cendeu = 22)

            and

            id_situacion_entidad = 1

            and

            @par83 = 0

            and

            @par84 <> 0

 

 

Estos UPDATEs se aplican sobre la tabla temporal que posee 1.000.000 de 
registros. Esta es la parte que se queda procesando y nunca finaliza.

 

Saludos

 

 

De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Jose Mariano Alvarez
Enviado el: Martes, 09 de Septiembre de 2008 07:03 p.m.
Para: Ignacio Ayerbe
Asunto: [dbms] Consulta sobre Performance de SP

 

Que significa recorrer?

 

Pasanos el script de la tabla y los indices de la tabla que tiene el update.

También el update.

 

Imagino que es un solo update por lo que cuentas. Es asi?

 

saludos


-------------------------------- 
Atte.
Ing. Jose Mariano Alvarez
SQL Total Consulting

On Tue, Sep 9, 2008 at 17:28, Ignacio Ayerbe <[EMAIL PROTECTED]> wrote:

Buenos días Listeros.

       Tengo un problema con un Stored Procedure corriendo en un MSSQL 2000, el 
tema es el siguiente: la base de datos pesa unos 12Gb y la tarea que debe 
realizar el Stored Procedure es recorrer alrededor de 1.000.000 de registros, 
meterlos en una tabla temporal y hacerles un Update a cada registro (el update 
es sencillo, solo modifica un campo de la tabla temporal).
       El problema es que cuando ejecuto el proceso con 1.000 registros tarda 0 
seg., con 100.000 registros tarda 10 minutos y cuando lo ejecuto con el 
1.000.000 de registros directamente se queda como procesando y nunca finaliza.
       ¿Alguien tiene una idea de cómo solucionar esto? ¿Hay que tocar algo en 
el servidor? ¿Qué tips me recomiendan para ejecutar acciones simples pero en 
gran volumen?

Saludos y agradezco cualquier ayuda al respecto.

 

 

Responder a