Hier ist ein Argument für SPs, die ich noch nicht gehört habe. Flamers, seien Sie vorsichtig mit dem Abwärts Tick,Ist dies ein wichtiger Vorteil der Verwendung von Embedded SQL über gespeicherte Prozeduren?
Da Overhead mit jeder Reise zum Datenbankserver verbunden ist, würde ich vorschlagen, dass ein möglicher Grund für die Platzierung Ihrer SQL in SP über eingebetteten Code ist, dass Sie isolierter sind, um zu ändern ohne einen Performance-Hit zu nehmen.
Zum Beispiel. Angenommen, Sie müssen Abfrage A ausführen, die eine skalare Ganzzahl zurückgibt.
Dann später ändern sich die Anforderungen und Sie entscheiden, dass es die Ergebnisse des Skalars> x ist, dass dann und nur dann müssen Sie eine andere Abfrage durchführen. Wenn Sie die erste Abfrage in einem SP ausgeführt haben, können Sie das Ergebnis der ersten Abfrage einfach überprüfen und die zweite SQL-Anweisung im selben SP ausführen.
Wie würden Sie dies effizient in Embedded SQL machen, ohne eine separate Abfrage oder eine unnötige Abfrage durchzuführen?
Hier ist ein Beispiel:
--This SP may return 1 or two queries.
SELECT @CustCount = COUNT(*) FROM CUSTOMER
IF @CustCount > 10
SELECT * FROM PRODUCT
Kann das/was ist der beste Weg, dies in Embedded SQL zu tun?
Ich wünschte, ich könnte dich mehr als einmal für diesen Artikel abstimmen. Überzeugende Punkte, die ich noch nicht gehört habe. – ChadD
SQL ändert nicht, ob es in eine andere Sprache eingebettet ist oder nicht. Und auf jeden Fall sollten Sie versuchen, das benutzerdefinierte SQL, das Sie so oft wie möglich schreiben, zu minimieren. http://www.losetechies.com/blogs/chad_myers/archive/2008/02/21/sql-is-the-assembly-language-of-the-modern-world.aspx – chadmyers
@ chadmyers: wenn Sie arbeiten größere Systeme, ORMs scheitern kläglich. Und sie können nicht mit richtig gestalteten Datenbanken umgehen, weil sie Ihnen das Design vorschreiben. Und es macht meine Antwort nicht ungültig, weil Sie das ORM jedes Mal neu implementieren müssen. Ein gespeicherter Prozess ist eine Methode – gbn