Contents
Statisches SQL sind Anweisungen in einer Anwendung, die sich zur Laufzeit (beim Schreiben von Quellcode) nicht ändern und daher in die Anwendung hartcodiert werden können. Statisches SQL wird als statisch bezeichnet, da sich die SQL-Anweisungen im Programm nicht jedes Mal ändern, wenn das Programm ausgeführt wird.
Statisches SQL wird im Allgemeinen in eingebetteten SQL-Datenbankanwendungen verwendet. Die Quelle muss vom DB2-Datenbankmanager mit einem SQL-Precompiler verarbeitet werden, bevor sie kompiliert und ausgeführt werden kann. Während dieses Prozesses wertet der SQL-Precompiler Verweise auf Tabellen, Spalten und deklarierte Datentypen aller Hostvariablen aus und bestimmt, welche Datenkonvertierungsmethoden verwendet werden müssen, wenn Daten in die und aus der Datenbank verschoben werden.
SQL-Anweisungen sind im Allgemeinen einfach zu verwenden; Sie sind jedoch eingeschränkt, da ihr Format dem Precompiler im Voraus bekannt sein muss und sie nur mit Host-Variablen arbeiten können.
Statisches SQL kann von den folgenden Schnittstellen ausgeführt werden:
Dynamisches SQL wird im Allgemeinen zum Senden von SQL-Anweisungen an den Datenbankmanager von grafischen Benutzeroberflächen für interaktive Abfragen und SQL-Befehlszeilenprozessoren sowie von Anwendungen verwendet, bei denen die vollständige Struktur der Abfragen zum Zeitpunkt der Anwendungskompilierung nicht bekannt ist und die Programmier-API dynamisches SQL unterstützt .
Im Gegensatz zu statischen SQL-Anweisungen, die im Programm hartcodiert sind, kann Dynamic SQL zur Laufzeit erstellt und in einem String-Host platziert werden. Sie werden dann zur Verarbeitung an das Datenbankverwaltungssystem gesendet. Mit Dynamic SQL können Sie mit SQL allgemeinere, flexiblere Anwendungen erstellen, da der vollständige Text einer SQL-Anweisung bei der Kompilierung möglicherweise unbekannt ist.
Normalerweise ist Dynamic SQL im Allgemeinen langsamer als statisches SQL, da das Datenbankverwaltungssystem zur Laufzeit einen Zugriffsplan für dynamische SQL-Anweisungen erstellen muss. Wenn jedoch ein Programm mit dynamischen SQL-Anweisungen kompiliert wird, werden die dynamischen SQL-Anweisungen nicht wie bei Static SQL aus dem Programm entfernt, sondern durch einen Funktionsaufruf ersetzt, der die Anweisung an das Datenbankmanagementsystem (DNMS) übergibt.
Dynamisches SQL kann von den folgenden Schnittstellen verwendet werden:
Lesen Sie auch: Unterschied zwischen Union und Join In SQL
VERGLEICHSGRUNDLAGE | STATISCHES SQL | DYNAMISCHES SQL |
Beschreibung | In statischem oder eingebettetem SQL wird die Zugriffsprozedur auf die Datenbank in der eingebetteten SQL-Anweisung vorgegeben und vom Präprozessor ausgeführt, wenn der Benutzer keine Abfragen zur Laufzeit ausführen kann. | In Dynamic SQL wird zur Laufzeit festgelegt, wie auf eine Datenbank zugegriffen wird, und der Benutzer kann auch Anweisungen in der strukturierten Abfragesprache zur Laufzeit ausführen. |
Zusammenstellung der notwendigen Prozesse | Alle Prozesse, einschließlich Parsing, Validierung, Optimierung und Generierung des Anwendungszugriffsplans, werden zur Kompilierzeit durchgeführt. | Alle Prozesse einschließlich Parsing, Validierung, Optimierung und Generierung des Anwendungszugriffsplans (binäre Form von SQL-Abfragen) werden zur Laufzeit ausgeführt. |
Aussagen | Anweisungen wie EXECUTE IMMEDIATE, EXECUTE PREPARE werden nicht verwendet. | Es werden Anweisungen wie EXECUTE IMMEDIATE, EXECUTE PREPARE verwendet. |
Zusammenstellung von Aussagen | Statische SQL-Anweisungen werden zur Kompilierzeit kompiliert. | Dynamische SQL-Anweisungen werden zur Laufzeit kompiliert. |
Verwenden | Bei gleichmäßig verteilten Daten wird statisches SQL verwendet. | Bei ungleichmäßig verteilten Daten wird Dynamic SQL verwendet. |
Effizienz | Statische SQL-Anweisungen sind schneller und effizienter. | Dynamische SQL-Anweisungen sind weniger effizient. |
Flexibilität | Statisches SQL ist weniger flexibel. | Dynamisches SQL ist hochflexibel. |
Lesen Sie auch: Unterschied zwischen Normalisierung und Denormalisierung
Einleitung: Die Begriffe "Freeway" und "Highway" werden oft synonym verwendet, aber es gibt subtile Unterschiede…
Burritos und Enchiladas sind zwei beliebte Gerichte der mexikanischen Küche, die oft miteinander verwechselt werden.…
In der Zellbiologie spielen Replikation und Transkription entscheidende Rollen im genetischen Prozess. Beide sind Mechanismen,…
Osmose und Diffusion sind zwei grundlegende Prozesse, die in der Zellbiologie und Chemie eine entscheidende…
Einleitung: Die Evolution der mobilen Kommunikationstechnologie hat einen bedeutenden Meilenstein erreicht, als 4G (LTE) zu…
Einleitung: JPG und PNG sind zwei gängige Bildformate, die im Internet weit verbreitet sind. Obwohl…