Wie ist die Ausführungsreihenfolge von SQL-Abfragen?


Beste Antwort

Die Ausführung von SQL-Abfragen ist eine Kombination mehrerer Prozesse, einschließlich

1. Parsen.

2. Optimierung.

3. Generierung von Quell- oder Zeilenquellen

4. Ausführung

Analyse:

Wenn eine SQL-Anweisung ausgeführt wird, führt sie einen Analyseaufruf an die Datenbank aus, um die Anweisung für die Ausführung vorzubereiten. Der Analyseaufruf öffnet oder erstellt einen Cursor. Dies ist ein Handle für den sitzungsspezifischen privaten SQL-Bereich, der eine analysierte SQL-Anweisung und andere Verarbeitungsinformationen enthält.

Während des Analyseaufrufs führt die Datenbank die folgenden Überprüfungen durch :

Syntaxprüfung

Semantische Prüfung

Prüfung des gemeinsam genutzten Pools

SQL-Optimierung

Während der Optimierungsphase muss die Datenbank mindestens einmal für jede eindeutige DML-Anweisung eine harte Analyse durchführen und die Optimierung während dieser Analyse durchführen.

Generierung von SQL-Zeilenquellen

Eine Zeilenquelle ist ein Zeilensatz, der von einem Schritt im Ausführungsplan zusammen mit einer Steuerungsstruktur zurückgegeben wird, die die Zeilen iterativ verarbeiten kann. Die Zeilenquelle kann eine Tabelle, eine Ansicht oder ein Ergebnis einer Verknüpfungs- oder Gruppierungsoperation sein.

Der Zeilenquellengenerator erstellt einen Zeilenquellenbaum, bei dem es sich um eine Sammlung von Zeilenquellen handelt. Der Zeilenquellenbaum enthält die folgenden Informationen:

Eine Reihenfolge der Tabellen, auf die durch die Anweisung

verwiesen wird. Eine Zugriffsmethode für jede in der Anweisung

A erwähnte Tabelle Join-Methode für Tabellen, die von Join-Operationen in der Anweisung

betroffen sind. Datenoperationen wie Filter, Sortierung oder Aggregation

SQL-Ausführung

Während der Ausführung führt die SQL-Engine jede Zeilenquelle in dem vom Zeilenquellengenerator erstellten Baum aus.

Antwort

Sie möchten mehr darüber erfahren Ausführung von SQL-Datenbankabfragen? Siehe unser Video

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.