Was ist PL / SQL gut?

PL / SQL ist die Sprache zu verwenden, wenn das Schreiben von Code, der in der Datenbank befindet. Im folgenden Artikel werden Sie verschiedene Situationen, in denen sehen Sie PL / SQL nützlich finden.

Mit Datenbank-Trigger

EIN Auslöser ist ein Ereignis innerhalb des DBMS, dass einige Code automatisch ausführen verursachen können. Es gibt vier Arten von Datenbank-Trigger:

  • Tabellenebene Trigger Aktivität initiieren vor oder nach einem INSERT, UPDATE, oder Ereignis löschen. Diese werden am häufigsten zu verfolgen Verlaufsinformationen und Datenbankänderungen verwendet, redundante Daten synchronisiert zu halten, oder zur Erhöhung der Sicherheit durch die Verhinderung bestimmter Operationen auftritt.
  • View-Ebene Trigger sehr nützlich sind. EIN Aussicht ist eine SQL-Anweisung gespeichert, dass die Entwickler, als ob es sich eine Datenbanktabelle abfragen. Indem INSTEAD OF-Trigger für eine Sicht, die INSERT, ändern und löschen können Befehle auf die Ansicht angewendet werden, unabhängig von ihrer Komplexität, weil die INSTEAD OF-Trigger definiert, was zu der Ansicht getan werden kann.
  • Datenbank-Ebene Trigger kann beim Start und Herunterfahren aktiviert werden. Zum Beispiel, wenn die Datenbank startet Sie möglicherweise die Verfügbarkeit von anderen Datenbanken oder Web-Services testen möchten. Vor einer Datenbank shutdown, möchten Sie vielleicht andere Datenbanken und Web-Services zu informieren, dass die Datenbank offline geht.
  • Session-Ebene Trigger kann verwendet werden, um bestimmte Informationen zu speichern. Zum Beispiel, wenn ein Benutzer an- oder abmeldet, können Sie Code auszuführen, der die Vorlieben des Benutzers und lädt sie in den Speicher für den schnellen Zugriff enthält. Wenn die Sitzung schließt, kann ein Auslöser die Einstellungen für den späteren Gebrauch speichern.

Scripting Geschwindigkeit

Wenn das Schreiben von Code, die Möglichkeit, einen Teil des Codes zu schreiben und auszuführen, ohne sie zunächst in die Datenbank zu speichern ist nützlich. Oracle bietet diese Möglichkeit, die von allen PL / SQL IDEs unterstützt wird.

Keeping Code serverseitige

Die Mehrheit der PL / SQL-Code wird als Programmeinheiten in dem Server gespeichert. Eine typische Anwendung hat viele Zeilen Code.

Einige Programmierer, insbesondere Web-basierte Entwickler in den J2EE oder .NET-Umgebungen arbeiten, versuchen die meisten ihrer Code in dem Anwendungsserver in Java (für J2EE-Entwickler) oder VB.NET (für .NET-Entwickler) zu schreiben. Dies ist keine gute Praxis. In einer Datenbankanwendung wird ein großer Teil der Logik gewidmet Abrufen und Aktualisieren von Informationen. Wenn der Code dieser Aufgabe besteht in einem Anwendungsserver zu erreichen, muss es eine Anfrage an die Datenbank über ein Netzwerk senden. Dann muss die Datenbank die Anforderung verarbeiten und die Informationen zurück über das Netzwerk für die Anwendung Prozess senden. Da Netzwerke und Computer jetzt sehr schnell sind, könnte man denken, dass dies nur Bruchteile einer Sekunde dauern würde. Obwohl dies der Fall für eine einzige Anforderung ist, wenn eine sehr komplexe Anwendung erfordert Millionen oder sogar Hunderte von Millionen von Interaktionen mit der Datenbank, um sogar Bruchteilen einer Sekunde, um die Anzahl der Interaktionen Multiplikation zu sehr schlechten Leistung führen kann.

Selbst relativ einfache Operationen nur wenige Datenbankanforderungen erfordern kann problematisch sein, wenn die Anwendung von Hunderten, Tausenden zugegriffen wird, oder Zehntausende von Benutzern gleichzeitig. Es ist viel schwieriger, ohne die Verwendung von serverseitigen Codierung eine Datenbank-intensive Anwendung zu bauen, als es ist alles um den Code zu schreiben, in einem Application-Server laufen zu lassen.

Eines der Argumente gegen serverseitigen Code zu schreiben ist, dass die Anwendung nicht tragbar sein wird (kann nicht von einer Plattform zur anderen verschoben werden). Es wurden jedoch für eine sehr lange Zeit (mehr als zehn Jahre) verwendet es die meisten Organisationen Oracle verwenden und keine Schalter auf einer anderen Plattform betrachten. Auch Web-Entwicklung befindet sich derzeit in einem Zustand der schnellen Fluss. Organisationen häufig zwischen .NET, J2EE ändern und andere Umgebungen für ihre Web-basierte Anwendungsentwicklung.

Sowohl die .NET und J2EE-Umgebungen sind im Fluss, wie gut. In der J2EE-Umgebung, ein Jahr der Industriestandard für Web-Entwicklung oder so war vor Java Server Pages (JSPs) zu erstellen. Derzeit ist der Industriestandard in der JSP / Struts-Umgebung zu arbeiten. Im nächsten Jahr oder so, Gesichter Java Server (JSFs) wird der Industriestandard wahrscheinlicher geworden. Daher Code in der mittleren Ebene geschrieben läuft ein hohes Risiko, um in der Zukunft neu geschrieben werden.

Server-Side-Code läuft schneller, einfacher zu warten und zu testen, und ist weniger anfällig als in der mittleren Ebene platziert Code zu ändern. Daher wird in der Datenbank wesentliche Teile einer Anwendung schaffen, ist ein besserer Ansatz.

Es gibt eine Reihe von Orten, an denen Sie Code schreiben können, die Ihre Anwendungen verwenden können:

  • Teile von Anwendungen: PL / SQL-Programmeinheiten können eine Reihe von Werten (Funktionen) zurückzukehren, oder PL / SQL-Routinen können Datenbankoperationen (Verfahren) durchführen. Diese Funktionen und Verfahren können durch andere Funktionen und Prozeduren bzw. (im Falle von Funktionen) aufgerufen werden, in SQL-Anweisungen verwendet. PL / SQL-Routinen können so groß und komplex sein, wie Sie sie sein müssen. Einige komplexe Routinen können Tausende von Codezeilen enthalten. Ganze Systeme können Millionen von Codezeilen enthalten.
  • PL / SQL-Code in den Ansichten eingebettet: Oracle ermöglicht es Ihnen, Code in Datenbankansichten einbetten. Der Code könnte in der Tat in einer von zwei Stellen in der Ansicht befinden. Erstens können Sie einen Wert in der SELECT-Teil einer SQL-Anweisung korrekt gestaltete Funktionen Ort ein Rückkehr zusätzliche Informationen abgerufen werden, die sein könnte oder auch nicht Teil der Tabellen abgefragt werden.
  • Sie können auch einbetten PL / SQL in INSTEAD OF-Trigger auf einen Blick. Diese Trigger können Sie INSERT ausführen, UPDATE und DELETE-Operationen für komplexe Ansichten, mit PL / SQL programmatisch Handhabung, wie diese Operationen behandelt werden sollte.
  • Batch-Routinen: Batch-Routinen Code ausführen, der eine große Anzahl von Datensätzen in der gleichen Zeit verarbeitet. Erstellung von Rechnungen für jeden Kunden in einem System oder Verarbeitung Gehaltsabrechnung Schecks für eine gesamte Organisation sind Beispiele für Batch-Routinen. Diese Routinen sind in der Regel groß, komplex und Datenbank intensiv. Diese Art von Routine sollte sicher in PL / SQL geschrieben werden.

Menü