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

bookHerausforderung: Abfrageoptimierung

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 optimierten Form umzuschreiben.

Hier ist eine Liste der wichtigsten Techniken zur Abfrageoptimierung:

  1. Spalten explizit angeben: Anstelle des Sternchens (*) sollten die Spaltennamen explizit in den Abfragen genannt werden, um Leistung, Lesbarkeit und Wartbarkeit zu verbessern;

  2. Subabfragen minimieren: Die Verwendung von Subabfragen sollte reduziert werden, um die Abfrageleistung zu optimieren. Alternativen wie Joins oder abgeleitete Tabellen können Komplexität und Overhead vermeiden;

  3. Wiederholte IN-Operatoren vermeiden: Die Nutzung des IN-Operators in Abfragen sollte begrenzt werden, um Leistungseinbußen zu verhindern. Stattdessen können JOIN- oder EXISTS-Klauseln für effizientere Ausführungspläne verwendet werden;

  4. Joins logisch organisieren: SQL-Joins sollten mit der Haupttabelle beginnen und anschließend mit verknüpften Tabellen fortgesetzt werden, um die Abfrageorganisation und die Optimierung durch die Datenbank-Engine zu verbessern;

  5. Restriktive WHERE-Bedingungen verwenden: Die Abfrageleistung kann durch restriktive Bedingungen in der WHERE-Klausel verbessert werden, um Zeilen zu filtern und die Ausführungsgeschwindigkeit zu erhöhen;

  6. Code in gespeicherte Prozeduren oder Funktionen auslagern: Wiederkehrende Codeabschnitte sollten in gespeicherte Prozeduren oder benutzerdefinierte Funktionen ausgelagert werden, um Wiederverwendbarkeit, Modularität und einfachere Wartung zu ermöglichen. Dies kann Redundanz verringern und SQL-Abfragen optimieren.

Aufgabe

Swipe to start coding

Ihre Aufgabe besteht darin, eine Abfrage zu schreiben, die eine Liste aller Kontonummern zurückgibt, die mindestens eine Transaktion durchgeführt haben (Geld auf ein anderes Konto überwiesen haben). Die Ergebnisse sollen aufsteigend nach Kontonummer sortiert werden.

Um Ihre Abfrage effizienter und lesbarer zu gestalten, befolgen Sie diese Schritte:

  • Nur die Spalte account_number auswählen;
  • Einen INNER JOIN zwischen den Tabellen BankAccounts und Transactions verwenden;
  • Den Operator IN oder Unterabfragen nicht verwenden;
  • Das Ergebnis nach account_number aufsteigend sortieren.

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 original unoptimized query?

What database system are we using for this task?

Can you provide an example of the tables involved?

close

bookHerausforderung: Abfrageoptimierung

Swipe um das Menü anzuzeigen

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 optimierten Form umzuschreiben.

Hier ist eine Liste der wichtigsten Techniken zur Abfrageoptimierung:

  1. Spalten explizit angeben: Anstelle des Sternchens (*) sollten die Spaltennamen explizit in den Abfragen genannt werden, um Leistung, Lesbarkeit und Wartbarkeit zu verbessern;

  2. Subabfragen minimieren: Die Verwendung von Subabfragen sollte reduziert werden, um die Abfrageleistung zu optimieren. Alternativen wie Joins oder abgeleitete Tabellen können Komplexität und Overhead vermeiden;

  3. Wiederholte IN-Operatoren vermeiden: Die Nutzung des IN-Operators in Abfragen sollte begrenzt werden, um Leistungseinbußen zu verhindern. Stattdessen können JOIN- oder EXISTS-Klauseln für effizientere Ausführungspläne verwendet werden;

  4. Joins logisch organisieren: SQL-Joins sollten mit der Haupttabelle beginnen und anschließend mit verknüpften Tabellen fortgesetzt werden, um die Abfrageorganisation und die Optimierung durch die Datenbank-Engine zu verbessern;

  5. Restriktive WHERE-Bedingungen verwenden: Die Abfrageleistung kann durch restriktive Bedingungen in der WHERE-Klausel verbessert werden, um Zeilen zu filtern und die Ausführungsgeschwindigkeit zu erhöhen;

  6. Code in gespeicherte Prozeduren oder Funktionen auslagern: Wiederkehrende Codeabschnitte sollten in gespeicherte Prozeduren oder benutzerdefinierte Funktionen ausgelagert werden, um Wiederverwendbarkeit, Modularität und einfachere Wartung zu ermöglichen. Dies kann Redundanz verringern und SQL-Abfragen optimieren.

Aufgabe

Swipe to start coding

Ihre Aufgabe besteht darin, eine Abfrage zu schreiben, die eine Liste aller Kontonummern zurückgibt, die mindestens eine Transaktion durchgeführt haben (Geld auf ein anderes Konto überwiesen haben). Die Ergebnisse sollen aufsteigend nach Kontonummer sortiert werden.

Um Ihre Abfrage effizienter und lesbarer zu gestalten, befolgen Sie diese Schritte:

  • Nur die Spalte account_number auswählen;
  • Einen INNER JOIN zwischen den Tabellen BankAccounts und Transactions verwenden;
  • Den Operator IN oder Unterabfragen nicht verwenden;
  • Das Ergebnis nach account_number aufsteigend sortieren.

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!

Abschnitt 2. Kapitel 7
single

single

some-alt