Si vas a hacer un while usa un stored procedure escrito en .NET.
Es mas eficiente.


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


2008/8/8 Maxi accotto <[EMAIL PROTECTED]>

>  Si pero el concepto es el mismo, o sea: estas pensado en registros y
> ciclos y lo que hay que romper como modelo de pensar es eso, las bases de
> datos son conjuntos y todo lo que se pueda resolver asi es mucho mejor, sus
> planes son mejores.
>
>
>
> Usar un While vs un cursor puede que sea un poco mejor (eso dependera de lo
> que hay q hacer y como usas el cursor, pero no veo en un while como recorres
> registros de forma optima)
>
>
>
>
>
>
>
> * *
>
> *Maximiliano Damian Accotto*
>
> *Microsoft MVP en SQLServer*
>
> *SQL Total Consulting***
>
> *Bogota 3631 P3B*
>
> *1407 Buenos Aires-Argentina*
>
> *Movil: (011)-15-5868-5599***
>
> *Desde el exterior: (+54-911)-5868-5599*
>
> [EMAIL PROTECTED]<[EMAIL PROTECTED]>
> *
>
>
>
> *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Mariano
> Dios
> *Enviado el:* viernes, 08 de agosto de 2008 12:35 p.m.
>
> *Para:* MAXI
> *Asunto:* [dbadmin] Como hacer una iteracion
>
>
>
> Los cursores son costosos a nivel performance. Se recomienda no usarlos,
> intentar resolver la necesidad puntual por otro lado, por ejemplo a través
> de un ciclo y la cláusula WHILE.
>
> Si hablamos de un conjunto de datos pequeño, no hay problema, pero si
> estamos hablando de procesar un lote grande de datos, probas de una manera,
> después de la otra, y los tiempos de respuesta del motor varían de manera
> considerable.
>
> Mariano
>
>
>  ------------------------------
>
>
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: [dbadmin] Como hacer una iteracion
> Date: Fri, 8 Aug 2008 11:59:10 -0300
>
>  Hola, y cual es la diferencia de hacer eso y usar cursores? Un while a la
> larga es un proceso de cursores, estas pensando en registros y no en teoria
> de conjuntos como son las bases de datos
>
>
>
> * *
>
> *Maximiliano Damian Accotto*
>
> *Microsoft MVP en SQLServer*
>
> *SQL Total Consulting*
>
> *Bogota 3631 P3B*
>
> *1407 Buenos Aires-Argentina*
>
> *Movil: (011)-15-5868-5599*
>
> *Desde el exterior: (+54-911)-5868-5599*
>
> [EMAIL PROTECTED]<[EMAIL PROTECTED]>
> *
>
>
>
> *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Mariano
> Dios
> *Enviado el:* viernes, 08 de agosto de 2008 11:02 a.m.
> *Para:* MAXI
> *Asunto:* [dbadmin] Como hacer una iteracion
>
>
>
> Buen día,
>
> la lógica de un cursor se puede reemplazar con la clausula While.
> Podrías insertar los datos a recorrer en una tabla temporal, con una clave
> primaria autonumérica. Despues deberías contar las filas de la tabla
> temporal, y hacer un cliclo hasta que proceses el conjunto de datos. Dentro
> del ciclo, escribirías la funcionalidad que necesites.
>
> Mariano
>
>  ------------------------------
>
>
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> Subject: [dbadmin] Como hacer una iteracion
> Date: Fri, 8 Aug 2008 09:30:36 -0300
>
> Hola mariano!, gracias por la respuesta, me olvide de comentar  que estoy
> tratando de hacer la sentencia sin usar cursor alguno. Como última de última
> opción, será usar  cursores.  Como "no veo" solución sin cursores, estoy
> consultando en la lista.  Piensan que no es posible una salida a este
> planteo sin recurrir a los cursores?, yo, no le encuentro la vuelta.
>
>
>
> Aclaración, la tabla no tiene índice, mas que la pk
>
>
>
> Desde ya muchas gracias!!
>
>
>
>            Alejandra Blasco
>
>      Departamento de Sistemas
>
>          Naldo Lombardi S.A.
>
>         02362-422039(Int. 201)
>
> [EMAIL PROTECTED]
>  ------------------------------
>
> *De:* [email protected] [mailto:[EMAIL PROTECTED] *En nombre de *Jose
> Mariano Alvarez
> *Enviado el:* Jueves, 07 de Agosto de 2008 08:52 p.m.
> *Para:* [EMAIL PROTECTED]
> *Asunto:* [dbadmin] Como hacer una iteracion
>
>
>
> Yo usaria un cursor del tipo FOR UPDATE.
>
> Ojo con los indices.
>
> .
>
>
> --------------------------------
> Atte.
> Ing. Jose Mariano Alvarez
> SQL Total Consulting
>
>
>
>
>
>
>
> 2008/8/7 Programacion Naldo Lombardi SA <
> [EMAIL PROTECTED]>
>
> Necesito hacer que el campo de la tabla t1 que originalmente tiene esos
> valores termine con los valores
>
> de Salida
>
> la tabla t1, tiene un campo c1 (int), no PK, ni FK.
> Ejemplo con algunos registros:
> C1
> -------
> 110
> 110
> 110
> 120
> 120
> 130
> 140
> 140
> 140
>
>
> Salida:
> C1
> -------
> 11*1*
> 11*2*
> 11*3*
> 12*1*
> 12*2*
> 13*1*
> 14*1*
> 14*2*
>
>
> Quiere decir que encontramos tres 110, entonces necesito iterar el ultimo
> carcater del 110 de 1 a 3,agregando el 1 en el primer, el 2 en el segundo y
> 3 en el tercer registro. O sea, el primer registro 110 paso a ser 111,el
> segundo registro 110 paso a ser 112 , el tercer registro 110 paso a ser 113.
>
> Necesito hacer un script que me permita actualizar esos registros con esa
> iteración
>
> Espero me entiendan. Desde ya muchas gracias.
>
>
>
>            Alejandra Blasco
>      Departamento de Sistemas
>          Naldo Lombardi S.A.
>         02362-422039(Int. 201)
> [EMAIL PROTECTED]
>
>
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.524 / Virus Database: 270.5.12/1597 - Release Date: 07/08/2008
> 05:54 a.m.
>
>
>
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.524 / Virus Database: 270.5.12/1599 - Release Date: 07/08/2008
> 08:49 p.m.
>
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.524 / Virus Database: 270.5.12/1599 - Release Date: 07/08/2008
> 08:49 p.m.
>  ------------------------------
>
> Entra en contacto con el atleta que hay en ti. Haz la 
> prueba.<http://yourinnerathlete.windowslive.com/?locale=es-ar&TXT_TAGLM_WLYIA_takequiz_ar>
>
>
>  ------------------------------
>
> Descargá ya gratis y viví la experiencia Windows Live. Descubre Windows
> Live <http://www.descubrewindowslive.com/latam/index.html>
>

Responder a