Cursor Verus während der Schleife - Was sind die Vor-/Nachteile von Cursors?
-
02-07-2019 - |
Frage
Ist es eine gute Idee, während der Schleife anstelle eines Cursors zu verwenden? Was sind die Vor-/Nachteile von Cursors?
Lösung
Einige davon hängen von den DBMs ab, aber im Allgemeinen:
Profis:
Übertreffen Sie Schleifen, wenn es um die Verarbeitung von Reihen geht
Funktioniert einigermaßen gut mit großen Datensätzen
Nachteile:
Skalieren Sie auch nicht
Verwenden Sie mehr Serverressourcen
Erhöht die Last auf Tempdb
Kann Lecks verursachen, wenn sie falsch verwendet werden (z. B. offen ohne entsprechende Schließung)
Andere Tipps
Ich folge diesem Rat:
...] Was ist besser: Cursoren oder während Schleifen? Auch hier hängt es wirklich von Ihrer Situation ab. Ich benutze fast immer einen Cursor, um bei Bedarf Datensätze zu durchlaufen. Das Cursorformat ist für mich etwas intuitiver. Da ich nur die Konstrukte verwende, um das Ergebnissatz einmal zu durchschleifen, ist es sinnvoll, den Fast_forward Cursor zu verwenden. Denken Sie daran, dass die Art des Cursors, den Sie verwenden, einen enormen Einfluss auf die Leistung Ihres Schleifenkonstrukts haben wird.
- Tim Chapman in Vergleich des Cursors mit der Schleifenleistung in SQL Server 2008
Der verknüpfte Artikel enthält einfache Beispiele für die Implementierung jedes Ansatzes.
Ich würde Sie fragen, was Sie mit diesem Cursor/während der Schleife tun.
Wenn Sie Daten aktualisieren oder zurückgeben, warum verwenden Sie keine ordnungsgemäße Where -Klausel. Ich kenne Leute, die sagen würden, Sie sollten niemals Cursor verwenden.