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.
