Apuntes sobre cursores y recomendaciones en SQL Server
En SQL Server los cursores son muy lentos. Prácticamente nunca es recomendable y es bueno buscar otras alternativas de acuerdo a la necesidad.
De forma general se podría decir que:
Si la consulta es veloz y toma pocos segundos y no va a cambiar esa velocidad a medida que aumente el tamaño la base de datos (al menos no de forma repentina), se podría mantener los cursores.
Sin embargo, si usted cree que los datos que manejan los cursores van a aumentar a miles o peor a millones de filas, vale la pena reemplazar el cursor.
Los cursores en general son utilizados por gente que se siente cómodo con el manejo secuencial, pero el cursor en sí es lento. Bloquea datos y consume muchos recursos.
Si no tiene otra alternativa a cursores, recomendamos usar la opción FAST_FORWARD (si es aplicable) y READ_ONLY para optimizar los cursores.
Alternativas a cursores
- Consultas recursivas
- Sentencias WHILE (si se usan grupos de datos, si se usan datos de 1 en 1 es peor que cursores). En cierta forma, se puede decir que el while es un cursor no declarado.
- Sentencias SQL simples con joins.
Comentarios
Publicar un comentario