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