Herausforderung: 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:
-
Spalten explizit angeben: Anstelle des Sternchens (
*) sollten die Spaltennamen explizit in den Abfragen genannt werden, um Leistung, Lesbarkeit und Wartbarkeit zu verbessern; -
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;
-
Wiederholte IN-Operatoren vermeiden: Die Nutzung des
IN-Operators in Abfragen sollte begrenzt werden, um Leistungseinbußen zu verhindern. Stattdessen könnenJOIN- oderEXISTS-Klauseln für effizientere Ausführungspläne verwendet werden; -
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;
-
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; -
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.
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_numberauswählen; - Einen
INNER JOINzwischen den TabellenBankAccountsundTransactionsverwenden; - Den Operator
INoder Unterabfragen nicht verwenden; - Das Ergebnis nach
account_numberaufsteigend sortieren.
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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?
Awesome!
Completion rate improved to 4.55
Herausforderung: 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:
-
Spalten explizit angeben: Anstelle des Sternchens (
*) sollten die Spaltennamen explizit in den Abfragen genannt werden, um Leistung, Lesbarkeit und Wartbarkeit zu verbessern; -
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;
-
Wiederholte IN-Operatoren vermeiden: Die Nutzung des
IN-Operators in Abfragen sollte begrenzt werden, um Leistungseinbußen zu verhindern. Stattdessen könnenJOIN- oderEXISTS-Klauseln für effizientere Ausführungspläne verwendet werden; -
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;
-
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; -
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.
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_numberauswählen; - Einen
INNER JOINzwischen den TabellenBankAccountsundTransactionsverwenden; - Den Operator
INoder Unterabfragen nicht verwenden; - Das Ergebnis nach
account_numberaufsteigend sortieren.
Lösung
Danke für Ihr Feedback!
single