Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Abfrageoptimierung | Abfrageoptimierung.Indizes
Fortgeschrittene Techniken in SQL

bookHerausforderung: Abfrageoptimierung

Lassen Sie uns zwei Tabellen betrachten: BankAccounts und eine zusätzliche Tabelle namens Transactions.

BankAccounts table

Transactions table

Angenommen, wir möchten nur die Kontonummern abrufen, die mindestens eine Transaktion durchgeführt haben.

In dieser Aufgabe liegt eine nicht optimierte Abfrage vor. Ihre Aufgabe ist es, diese in einer optimaleren Weise umzuschreiben.

Hier ist eine Liste der wichtigsten Techniken zur Abfrageoptimierung:

  1. Spalten explizit angeben: Anstatt das Sternchen (*) als Platzhalter zu verwenden, sollten Sie die Spaltennamen in Abfragen explizit angeben, um Leistung, Lesbarkeit und Wartbarkeit zu verbessern;

  2. Subabfragen minimieren: Reduzieren Sie die Verwendung von Subabfragen, um die Abfrageleistung zu optimieren. Ziehen Sie Alternativen wie Joins oder abgeleitete Tabellen in Betracht, um Komplexität und Overhead zu vermeiden;

  3. Wiederholte IN-Operatoren vermeiden: Begrenzen Sie die Verwendung des IN-Operators in Abfragen, um Leistungseinbußen zu verhindern. Verwenden Sie stattdessen JOIN- oder EXISTS-Klauseln für effizientere Ausführungspläne;

  4. Joins logisch organisieren: Beginnen Sie SQL-Joins mit der Haupttabelle und fügen Sie anschließend verknüpfte Tabellen hinzu, um die Abfrageorganisation und die Optimierung durch die Datenbank-Engine zu verbessern;

  5. Restriktive WHERE-Bedingungen verwenden: Verbessern Sie die Abfrageleistung, indem Sie restriktive Bedingungen in der WHERE-Klausel einfügen, um Zeilen zu filtern und die Ausführungsgeschwindigkeit zu erhöhen;

  6. Code in gespeicherte Prozeduren oder Funktionen auslagern: Kapseln Sie wiederkehrende Codeabschnitte in gespeicherte Prozeduren oder benutzerdefinierte Funktionen, um Wiederverwendbarkeit, Modularität und einfachere Wartung zu gewährleisten. Dies kann Redundanz verringern und SQL-Abfragen optimieren.

Aufgabe

Swipe to start coding

Bitte die Abfrage optimaler umschreiben. Beachten Sie, dass nur Kontonummern abgerufen werden sollen, die mindestens eine Transaktion durchgeführt haben (Geld auf ein anderes Konto überwiesen haben), aufsteigend sortiert.

Hinweis

Verwenden Sie den Join-Typ LEFT oder INNER, um diese Aufgabe zu lösen.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you show me the unoptimized query?

What would an optimized query look like for this task?

Can you explain why the optimized query is better?

close

Awesome!

Completion rate improved to 4.35

bookHerausforderung: Abfrageoptimierung

Swipe um das Menü anzuzeigen

Lassen Sie uns zwei Tabellen betrachten: BankAccounts und eine zusätzliche Tabelle namens Transactions.

BankAccounts table

Transactions table

Angenommen, wir möchten nur die Kontonummern abrufen, die mindestens eine Transaktion durchgeführt haben.

In dieser Aufgabe liegt eine nicht optimierte Abfrage vor. Ihre Aufgabe ist es, diese in einer optimaleren Weise umzuschreiben.

Hier ist eine Liste der wichtigsten Techniken zur Abfrageoptimierung:

  1. Spalten explizit angeben: Anstatt das Sternchen (*) als Platzhalter zu verwenden, sollten Sie die Spaltennamen in Abfragen explizit angeben, um Leistung, Lesbarkeit und Wartbarkeit zu verbessern;

  2. Subabfragen minimieren: Reduzieren Sie die Verwendung von Subabfragen, um die Abfrageleistung zu optimieren. Ziehen Sie Alternativen wie Joins oder abgeleitete Tabellen in Betracht, um Komplexität und Overhead zu vermeiden;

  3. Wiederholte IN-Operatoren vermeiden: Begrenzen Sie die Verwendung des IN-Operators in Abfragen, um Leistungseinbußen zu verhindern. Verwenden Sie stattdessen JOIN- oder EXISTS-Klauseln für effizientere Ausführungspläne;

  4. Joins logisch organisieren: Beginnen Sie SQL-Joins mit der Haupttabelle und fügen Sie anschließend verknüpfte Tabellen hinzu, um die Abfrageorganisation und die Optimierung durch die Datenbank-Engine zu verbessern;

  5. Restriktive WHERE-Bedingungen verwenden: Verbessern Sie die Abfrageleistung, indem Sie restriktive Bedingungen in der WHERE-Klausel einfügen, um Zeilen zu filtern und die Ausführungsgeschwindigkeit zu erhöhen;

  6. Code in gespeicherte Prozeduren oder Funktionen auslagern: Kapseln Sie wiederkehrende Codeabschnitte in gespeicherte Prozeduren oder benutzerdefinierte Funktionen, um Wiederverwendbarkeit, Modularität und einfachere Wartung zu gewährleisten. Dies kann Redundanz verringern und SQL-Abfragen optimieren.

Aufgabe

Swipe to start coding

Bitte die Abfrage optimaler umschreiben. Beachten Sie, dass nur Kontonummern abgerufen werden sollen, die mindestens eine Transaktion durchgeführt haben (Geld auf ein anderes Konto überwiesen haben), aufsteigend sortiert.

Hinweis

Verwenden Sie den Join-Typ LEFT oder INNER, um diese Aufgabe zu lösen.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

close

Awesome!

Completion rate improved to 4.35
Abschnitt 2. Kapitel 7
single

single

some-alt