SQL 2005: Uso de Cursores

07/06/2007 - 15:25 por Juan Carlos Mendoza | Informe spam
A pesar de existir en el SQL 7 y SQL 2000, el uso de cursores no es
muy recomendable por temas de performance y ocupacion de memoria del
Servidor.

En SQL 2005 tambien se permite el uso de Cursores. La recomendacion de
evitar su uso es aplicable en esta version o se ha mejorado el uso de
esta herramienta? Cual es la alternativa al uso de cursores ?

En general, cuales son las ventajas y desventajas del uso de cursores,
y en que casos si es recomendable aprobar su utilizacion.

Gracias anticipadas.

Juan Carlos Mendoza

Preguntas similare

Leer las respuestas

#1 Maxi
07/06/2007 - 16:45 | Informe spam
Juan, el uso de cursores se debe dejar para casos donde no queda otro
remedio, no es que nunca hay que usarlos, pero la realidad es que los
desarrolladores les es mas facil pensar en cursores que en conjuntos de
datos, y esto no es solo para SQLServer.
En otros motores son mas eficientes los cursores, pero en SQL no y la verdad
que yo no me preocuparia mucho por ello porque es la forma de pensar y ver
las cosas, los motores se los debe trabajar en conjunto de registros y no
pensar el recorrido registro a registro, hay veces que no queda otra
solucion pero son menos del 2% de los casos.

Ahora bien te hago un comentario, hace unos meses dimos una charla en
argentina donde mostramos CLR dentro de SQL20005 y uno de los ejemplos era
comparar el uso de un cursor TSQL vs un datareader dentro de un SP de CLR de
SQL2005, los 2 resolvian lo mismo con la misma cantidad de registros, sabes
cual era mas rapido? el datareader :)


-
Microsoft M.V.P en SQLServer
SQLTotal Consulting - Servicios en SQLServer
Email:
"Juan Carlos Mendoza" escribió en el mensaje
news:
A pesar de existir en el SQL 7 y SQL 2000, el uso de cursores no es
muy recomendable por temas de performance y ocupacion de memoria del
Servidor.

En SQL 2005 tambien se permite el uso de Cursores. La recomendacion de
evitar su uso es aplicable en esta version o se ha mejorado el uso de
esta herramienta? Cual es la alternativa al uso de cursores ?

En general, cuales son las ventajas y desventajas del uso de cursores,
y en que casos si es recomendable aprobar su utilizacion.

Gracias anticipadas.

Juan Carlos Mendoza

Respuesta Responder a este mensaje
#2 Miguel Egea
07/06/2007 - 17:12 | Informe spam
La recomendación sigue siendo la misma.
Su alternativa es el tratamiento masivo de datos, cada caso es un mundo y se
resuelve de una forma distinta, subconsultas, tablas derivadas, incluso
tablas temporales y cuando no queda más remedio un cursor.

Las ventajas es que los programadores los ven sencillos, es una forma
iterativa de trabajar igual que en cualquier aplicación. Las desventajas son
2 , escalabilidad y rendimiento. y una es consecuencia de la otra.

Se pueden usar cursores sin problemas cuando hablamos de muy poquitos
registros y en el que para cada uno hay que ejecutar un procedimiento
almacenado (por ejemplo).

De todas formas hay más casos en los que son "aceptables" lo mejor es probar
y decidir.

Saludos

Saludos Cordiales
Miguel Egea Gómez
http://blogs.solidq.com/ES/megea/default.aspx
http://www.portalsql.com
Solid Quality Mentors


"Juan Carlos Mendoza" wrote in message
news:
A pesar de existir en el SQL 7 y SQL 2000, el uso de cursores no es
muy recomendable por temas de performance y ocupacion de memoria del
Servidor.

En SQL 2005 tambien se permite el uso de Cursores. La recomendacion de
evitar su uso es aplicable en esta version o se ha mejorado el uso de
esta herramienta? Cual es la alternativa al uso de cursores ?

En general, cuales son las ventajas y desventajas del uso de cursores,
y en que casos si es recomendable aprobar su utilizacion.

Gracias anticipadas.

Juan Carlos Mendoza

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida