Zitat Zitat von Fuerchau Beitrag anzeigen
Insofern Blödsinn, dass dadurch nur geringe oder keinerlei SQL-Vorteile des Optimizers genutzt werden können.
Alles hängt von der Procedure ab wie performant dies wird.
Procedures habe natürlich ihre Berechtigung, wenn Sie denn "erheblich" mehr tun als nur einen Select durchzuführen (Business-Logic).
Dafür gibt es halt die "Ein-" und "Ausgabe"-Parameter, in denen man die Ergebnisse zurückerhält.
Resultsets sind da eher unerquicklich und verleiten ggf. zu Verwendung in Joins.
Hier kann der Optimizer dann fast gar nichts mehr tun.
Sofern die ausgegebenen Result Sets auf SQL Cursorn beruhen, die beim Verlassen der Stored Procedure geöffnet bleiben, erfolgt sehr wohl eine Optimierung!

Result Sets haben den Nachtteil, dass das ausgegebene Daten-Volumne von außen (außer über die übergebenen Parameter-Werte) nicht beeinflussen kann. Werden also nicht alle zurückgegbenen Daten benötigt, müssen die unerwünschten Daten trotzdem gelesen bzw. überlesen werden.

Ebenso können Result Sets nicht in SELECT-Statements verwendet oder mit einander über SQL verknüpft werden.

Birgitta