Hola, 20 min? una locura de tiempo!! pensa porque usas la temporal? que hace el proceso? necesita retornar luego datos al usuario? que haces luego con esa temporal?
El día 10 de septiembre de 2008 10:57, Ignacio Ayerbe <[EMAIL PROTECTED]> escribió: > 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. > > > > -- ----------------------------------------------------------- Microsoft MVP en SQL Server Consultor en SQLTotalConsulting Excelencia en servicios y consultoria SQLServer www.sqltotalconsulting.com -----------------------------------------------------------
