Frage

Ist es eine gute Idee, während der Schleife anstelle eines Cursors zu verwenden? Was sind die Vor-/Nachteile von Cursors?

War es hilfreich?

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.

Einige Nachteile von Cursors sind hier

Dann gibt es auch Dies (Eigentlich ein sehr interessantes Problem namens "Halloween -Problem")

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top