Vor-und Nachteile der Verwendung eines Cursors (in SQL server)

Fragte ich hier eine Frage Mit dem cursor in OLTP-Datenbanken (SQL-server)

wo die Menschen antworteten Cursor sollte niemals verwendet werden.

Ich fühle Cursor sind sehr mächtige Werkzeuge, die verwendet werden soll (ich glaube nicht, dass Microsoft unterstützt Cursor für bad Entwickler).Angenommen, Sie haben eine Tabelle, wo der Wert einer Spalte in einer Zeile ist abhängig von dem Wert der gleichen Spalte in der vorherigen Zeile. Wenn es eine Zeit, die back-end-Prozess, nicht Sie denken, mit einem cursor wäre eine akzeptable Wahl?

Aus der Spitze von meinem Kopf kann ich denken, ein paar Szenarien, wo ich finde, es sollte keine Schande Hilfe des cursors. Bitte lassen Sie mich wissen, wenn Sie die Jungs fühlen sich anders.

1>Eine einmalige back-end-Prozess zu reinigen schlechten Daten, die Ausführung innerhalb von ein paar Minuten.
2>Batch-Prozesse, die laufen einmal in eine lange Zeit (etwa einmal jährlich).
Wenn in den oben genannten Szenarien, es gibt keine sichtbaren Belastung auf die anderen Prozesse, wäre es nicht unvernünftig, zu verbringen mehr Stunden das schreiben von code zu vermeiden Cursor? In anderen Worten: in bestimmten Fällen können die Entwickler die Zeit wichtiger ist als die Leistung eines Prozesses, das hat fast keine Auswirkungen auf alles andere.

Meiner Meinung nach, würde dies einige Szenarien, in denen Sie ernsthaft versuchen sollte Sie zu vermeiden, mit einem cursor.
1>Eine gespeicherte Prozedur aufgerufen aus einer Webseite, die aufgerufen werden, sehr oft.
2>Eine SQL-Auftrag, die ausgeführt würde, mehrere Male am Tag und verbrauchen eine Menge von Ressourcen.

Ich denke, dass seine sehr oberflächlich, um eine Allgemeine Aussage wie "Cursor sollte niemals verwendet werden," ohne die Analyse der Aufgabe bei der hand und tatsächlich Wiegen Sie gegen die alternativen.

Bitte lassen Sie mich wissen, Ihre Gedanken.

  • Sieht aus wie Sql Server 2012 unterstützen werden die Fall immer den Wert aus der vorherigen Zeile in einem Satz basiert, Weg.
  • "Eine gespeicherte Prozedur aufgerufen, die eine web-site" ist viel zu vage. Wenn ein cursor ist die vernünftigste Wahl, um ein problem zu lösen, und die Prozedur aufgerufen werden, die von einem web-Seite...
InformationsquelleAutor developer747 | 2012-02-16
Schreibe einen Kommentar