2 Stimmen

Was sind die Vor- und Nachteile beim Schreiben von DB2 Stored Procedures in SQL gegenüber Java?

Mit neueren Versionen von DB2 können Sie gespeicherte Prozeduren in SQL schreiben oder Prozeduren in Java (oder anderen Sprachen) erstellen, die dann zur Datenbank hinzugefügt und genau wie SQL-Prozeduren aufgerufen werden können. Ich frage mich, was die Vor- und Nachteile der einzelnen Methoden sind. Ich bin speziell daran interessiert, diese beiden Arten von Prozeduren zu vergleichen und nicht über Prozeduren versus externen Code zu diskutieren, was meiner Meinung nach bereits behandelt wurde. Hier ist, was ich bis jetzt herausgefunden habe:

SQL:

  • Bessere Leistung für grundlegende SQL-Funktionen

  • Weniger ausführlich für einfache Logik, d.h. Sie können SQL direkt ausführen

  • Kein zusätzlicher Kompilierschritt - einfach Prozedur erstellen ...

Java:

  • Strukturierterer und umfassenderer Code (Klassen, Objekte, Wiederverwendung, Bibliotheken)

  • Bessere Ressourcen für Hilfe sowohl in Bezug auf Programmierer als auch auf Dokumentation

Haben Sie eine andere Idee?

4voto

paxdiablo Punkte 809679

Nicht nur Java, sondern jede prozedurale Sprache: Verfahren das ist der Schlüssel.

DB2 ist eine relationale Algebra, keine Programmiersprache. Wenn Sie etwas Komplexes tun müssen, ist es besser, eine prozedurale Sprache zu verwenden, als zu versuchen, SQL in etwas zu verwandeln, das es nicht sein soll.

Wir verwenden eigentlich REXX für unsere DB2/z-Arbeit, aber ich habe gesehen, dass die Jungs hier Bash auf dem Mainframe für schnelles Prototyping verwenden. Einige, die nur SQL verwenden, erstellen all diese schrecklichen temporären Tabellen zum Speichern von Dingen, die am besten in Strukturen und nicht in der DB aufbewahrt werden sollten.

Meiner Meinung nach ist die Komplexität der einzige Unterschied zwischen der Verwendung von SQL direkt in einer gespeicherten Prozedur und einem prozeduralen Ansatz. Bei diesen Entscheidungen gibt es zwei Faustregeln.

1/ Wenn eine Arbeitseinheit mehr als zwei Zugriffe auf die Datenbank erfordert, machen wir sie zu einer gespeicherten Prozedur.

2/ Wenn eine gespeicherte Prozedur eine temporäre Tabelle erstellt, dann verwenden wir eine prozedurale Sprache dafür.

0voto

MadMurf Punkte 2137

Vielleicht haben Sie das schon gefunden, aber nur für den Fall und für alle anderen, die hier vorbeischauen, gibt es ein IBM Redbook über SProcs und die Änderungen für DB2 v9, verfügbar unter DB2 9 für z/OS Gespeicherte Prozeduren: Durch den CALL und darüber hinaus in dem die verfügbaren Optionen und ihre jeweiligen Vorzüge erörtert werden.

-1voto

kishore Punkte 407

Der Vorteil der SQL Stored Procedures ist, dass sie mit minimalen oder gar keinen Änderungen auf andere Db2 UDb portierbar sind. Aber externe Db2-Prozeduren wären eine bessere Wahl, da man mit einer prozeduralen Sprache mehr machen kann als mit SQL allein. Ich würde sagen, dass Cobol aus den folgenden Gründen besser für externe DB2 Stored Procedures geeignet ist als Java. 1). Sie könnten einige Codes aus bestehenden Programmen wiederverwenden. Die Konvertierung eines Cobol-Unterprogramms in eine Stored Procedure oder einer Stored Procedure in ein Cobol-Unterprogramm ist sehr einfach zu bewerkstelligen. 2). Sie könnten das bestehende Cobol-Entwicklungsteam nutzen, das über funktionale Kenntnisse des Systems verfügt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X