while sirven reemplazar recorrer que para optimizar mejor los for cursores sql-server cursor

sql server - sirven - Cursor verus while loop-¿Cuáles son las ventajas/desventajas de los cursores?



reemplazar cursores sql server (4)

Algunos de estos dependen del DBMS, pero en general:

Pros:

  • Supera los bucles cuando se trata de procesamiento fila a fila

  • Funciona razonablemente bien con grandes conjuntos de datos

Contras:

  • No escalar tan bien

  • Use más recursos de servidor

  • Aumenta la carga en tempdb

  • Puede causar fugas si se usa incorrectamente (por ejemplo, abrir sin cerrar correspondiente)

¿Es una buena idea usar while loop en lugar de cursor? ¿Cuáles son las ventajas / desventajas de los cursores?


Te preguntaría qué estás haciendo con ese bucle cursor / while.

Si está actualizando o devolviendo datos, ¿por qué no usa una cláusula WHERE adecuada? Conozco personas que dirían que nunca debes usar cursores.


Estoy siguiendo este consejo:

[...] ¿qué es mejor: cursores o MIENTRAS bucles? De nuevo, realmente depende de tu situación. Casi siempre uso un cursor para recorrer los registros cuando sea necesario. El formato del cursor es un poco más intuitivo para mí y, como solo uso las construcciones para recorrer el conjunto de resultados una vez, tiene sentido usar el cursor FAST_FORWARD. Recuerde que el tipo de cursor que use tendrá un gran impacto en el rendimiento de su construcción de bucle.

- Tim Chapman en Comparación del cursor con el rendimiento del ciclo WHILE en SQL Server 2008

El artículo vinculado contiene ejemplos simples de cómo implementar cada enfoque.


Algunas desventajas de los cursores están aquí

Luego también está esto (en realidad es un problema muy interesante llamado "problema de Halloween")