Utmaning: Frågeoptimering
Anta att vi vill hämta endast de kontonummer som har genomfört minst en transaktion.
I denna uppgift har vi en fråga som inte är optimerad. Din uppgift är att skriva om den på ett mer optimalt sätt.
Här är en lista över de viktigaste teknikerna för omskrivning av frågor för att förbättra optimeringen:
-
Specificera kolumner explicit: ange kolumnnamn i frågorna istället för att använda asterisk (
*) wildcard för bättre prestanda, läsbarhet och underhållbarhet; -
Minimera underfrågor: minska användningen av underfrågor för att optimera frågans prestanda. Överväg alternativ som joins eller härledda tabeller för att undvika komplexitet och överbelastning;
-
Undvik upprepade IN-operatorer: begränsa användningen av
IN-operatorn i frågor för att förhindra prestandapåverkan. Använd iställetJOINellerEXISTS-satser för mer effektiva exekveringsplaner; -
Organisera joins logiskt: börja SQL-joins med huvudtabellen och anslut sedan till relaterade tabeller för att optimera frågans struktur och databasens optimering;
-
Använd restriktiva WHERE-villkor: förbättra frågans prestanda genom att inkludera restriktiva villkor i
WHERE-satsen för att filtrera rader och öka exekveringshastigheten; -
Omstrukturera kod till lagrade procedurer eller funktioner: kapsla in upprepande kodavsnitt i lagrade procedurer eller användardefinierade funktioner för återanvändbarhet, modularitet och enklare underhåll. Dessa kan minska redundans och optimera SQL-frågor.
Swipe to start coding
Din uppgift är att skriva en fråga som returnerar en lista över alla kontonummer som har genomfört minst en transaktion (överfört pengar till ett annat konto). Resultatet ska sorteras i stigande ordning efter kontonummer.
För att göra din fråga mer effektiv och lättläst, följ dessa steg:
- Välj endast kolumnen
account_number; - Använd en
INNER JOINmellan tabellernaBankAccountsochTransactions; - Använd inte operatorn
INeller underfrågor; - Sortera resultatet efter
account_numberi stigande ordning.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4.55
Utmaning: Frågeoptimering
Svep för att visa menyn
Anta att vi vill hämta endast de kontonummer som har genomfört minst en transaktion.
I denna uppgift har vi en fråga som inte är optimerad. Din uppgift är att skriva om den på ett mer optimalt sätt.
Här är en lista över de viktigaste teknikerna för omskrivning av frågor för att förbättra optimeringen:
-
Specificera kolumner explicit: ange kolumnnamn i frågorna istället för att använda asterisk (
*) wildcard för bättre prestanda, läsbarhet och underhållbarhet; -
Minimera underfrågor: minska användningen av underfrågor för att optimera frågans prestanda. Överväg alternativ som joins eller härledda tabeller för att undvika komplexitet och överbelastning;
-
Undvik upprepade IN-operatorer: begränsa användningen av
IN-operatorn i frågor för att förhindra prestandapåverkan. Använd iställetJOINellerEXISTS-satser för mer effektiva exekveringsplaner; -
Organisera joins logiskt: börja SQL-joins med huvudtabellen och anslut sedan till relaterade tabeller för att optimera frågans struktur och databasens optimering;
-
Använd restriktiva WHERE-villkor: förbättra frågans prestanda genom att inkludera restriktiva villkor i
WHERE-satsen för att filtrera rader och öka exekveringshastigheten; -
Omstrukturera kod till lagrade procedurer eller funktioner: kapsla in upprepande kodavsnitt i lagrade procedurer eller användardefinierade funktioner för återanvändbarhet, modularitet och enklare underhåll. Dessa kan minska redundans och optimera SQL-frågor.
Swipe to start coding
Din uppgift är att skriva en fråga som returnerar en lista över alla kontonummer som har genomfört minst en transaktion (överfört pengar till ett annat konto). Resultatet ska sorteras i stigande ordning efter kontonummer.
För att göra din fråga mer effektiv och lättläst, följ dessa steg:
- Välj endast kolumnen
account_number; - Använd en
INNER JOINmellan tabellernaBankAccountsochTransactions; - Använd inte operatorn
INeller underfrågor; - Sortera resultatet efter
account_numberi stigande ordning.
Lösning
Tack för dina kommentarer!
single