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.