Utmaning: Frågeoptimering
Låt oss utforska två tabeller: BankAccounts
och en ytterligare tabell med namnet Transactions
.
BankAccounts table
Transactions table
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: Istället för att använda asterisken (
*
) som jokertecken, ange kolumnnamn explicit i frågor 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. Överväg istället att användaJOIN
- ellerEXISTS
-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
Vänligen skriv om frågan på ett mer optimalt sätt. Observera att vi endast behöver hämta kontonummer som har genomfört minst en transaktion (överfört pengar till ett annat konto) sorterade i stigande ordning.
Observera
Använd
LEFT
ellerINNER
join-typ för att slutföra denna uppgift.
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.35
Utmaning: Frågeoptimering
Svep för att visa menyn
Låt oss utforska två tabeller: BankAccounts
och en ytterligare tabell med namnet Transactions
.
BankAccounts table
Transactions table
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: Istället för att använda asterisken (
*
) som jokertecken, ange kolumnnamn explicit i frågor 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. Överväg istället att användaJOIN
- ellerEXISTS
-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
Vänligen skriv om frågan på ett mer optimalt sätt. Observera att vi endast behöver hämta kontonummer som har genomfört minst en transaktion (överfört pengar till ett annat konto) sorterade i stigande ordning.
Observera
Använd
LEFT
ellerINNER
join-typ för att slutföra denna uppgift.
Lösning
Tack för dina kommentarer!
Awesome!
Completion rate improved to 4.35single