Les avantages et les inconvénients de l'utilisation d'un curseur (SQL server)

J'ai posé une question ici À l'aide du curseur dans OLTP bases de données (SQL server)

où les gens ont répondu en disant curseurs ne doit jamais être utilisé.

Je sens les curseurs sont des outils très puissants qui sont destinés à être utilisés (je ne pense pas que Microsoft prend en charge les curseurs pour les mauvais développeurs).Supposons que vous disposez d'une table où la valeur d'une colonne dans une ligne dépend de la valeur de la même colonne de la rangée précédente. Si c'est une fois de retour en fin de processus, vous ne pensez pas à l'aide d'un curseur serait un choix acceptable?

Sur le dessus de ma tête, je ne peux penser à un couple de scénarios où je me sens il devrait y avoir aucune honte à l'aide de curseurs. S'il vous plaît laissez-moi savoir si vous les gars se sentent autrement.

1>Une fois de retour en fin de processus pour nettoyer les données de mauvaise qualité qui termine l'exécution dans un délai de quelques minutes.
2>Lot processus qui s'exécutent une fois dans une longue période de temps (quelque chose comme une fois par an).
Si dans les scénarios ci-dessus, il n'est pas visible de la souche sur les autres processus, ne serait-il pas déraisonnable de passer des heures supplémentaires à l'écriture de code pour éviter les curseurs? En d'autres termes, dans certains cas, le développeur du temps est plus important que la performance d'un processus qui n'a presque aucune incidence sur quoi que ce soit d'autre.

À mon avis, ce serait certains scénarios où vous devriez sérieusement essayez d'éviter l'utilisation d'un curseur.
1>Une procédure stockée appelée à partir d'un site web qui peut être appelé très souvent.
2>UN travail SQL pour exécuter plusieurs fois par jour et de consommer beaucoup de ressources.

Je pense que c'est très superficiel pour faire une déclaration générale comme "les curseurs ne devraient jamais être utilisés" sans analyser la tâche à portée de main et fait de pesée contre les solutions de rechange.

S'il vous plaît laissez-moi savoir vos pensées.

Ressemble à Sql Server 2012 sera en charge le cas de l'obtention de la valeur de l'état de la ligne dans un ensemble.
"Une procédure stockée appelée à partir d'un site web" est trop vague. Si un curseur est le plus raisonnable pour résoudre un problème, et la procédure doit être appelée à partir d'une page web...

OriginalL'auteur developer747 | 2012-02-16