Festlegen von Bindungsvariablen auf Oracle SQL

February 20

Jedes Mal, wenn eine SQL-Anweisung an die Datenbank gesendet wird wird eine Übereinstimmung mit genauen Text durchgeführt, um festzustellen, ob die Anweisung bereits in der gemeinsamen Pool vorhanden ist. Wenn keine Übereinstimmung gefunden wird, erfolgt ein ressourcenintensiver Vorgang bezeichnet eine harte analysieren. die Verwendung von Bindevariablen kann diesen Aufwand reduzieren. Bindevariablen sind Ersetzungsvariablen, die anstelle von Literalen (z.B. "Mustermann") verwendet werden, die bewirken, genau die gleiche SQL auf Oracle senden, jedes Mal, wenn eine Abfrage ausgeführt wird. Bindevariablen können eine beträchtliche Leistungssteigerung für häufig abgefragte Multiuser-Datenbanken führen.

Anweisungen

1 Definieren Sie die Variable, die Sie verwenden, in der die SQL-Anweisung möchten * Plus Eingabeaufforderung mithilfe der Syntax:

Variable << Variablennamen >><< Typ >>

Zum Beispiel:

Variable CustId Anzahl

2 Legen Sie die Werte der definierten Bindevariablen mithilfe der Syntax:

Exec: << Variablennamen >>: = << Wert der Variablen >>

Zum Beispiel:

Exec: CustId: = 123455

3 Geben Sie die SQL-Anweisung ersetzen die Bindevariable für den Literalwert. Zum Beispiel:

Wählen Sie * von emp wo Customer_id =: CustId;

Tipps & Warnungen

  • PL/SQL macht es sehr einfach zu bedienen Bindungsvariablen, weil jeder Verweis auf einer PL/SQL-Variablen implizit in eine Bindevariable konvertiert wird. Es ist keine besonderer Syntax erforderlich.
  • Beim Erstellen von dynamischen SQL mit "Ausführen sofort," anstelle der Verkettung eines Wert wie im folgenden Beispiel gezeigt:
  • sofortige Ausführung ' aktualisieren emp Set Sal = Sal * 2 wo Empno = ' || P_empno;
  • Sie können stattdessen die Bind Variablen Syntax ersetzen, wie unten dargestellt:
  • sofortige Ausführung ' aktualisieren emp Set Sal = Sal * 2 wo Empno =: X' mit P_empno;
  • Denken Sie daran, die Variable binden sollte in erster Linie mit OLTP-Abfragen verwendet werden. Verwendung von Bindevariablen mit langer Laufzeit oder Daten Lager Typ Abfragen kann die Leistung beeinträchtigen. Beispielsweise lässt der Bindungsvariablen Sterne Transformationen, Effizienz eines Beitritts Fakten-und Dimensionstabellen in einem Sternschema stark reduziert.