Udfordring: Forespørgselsoptimering
Lad os undersøge to tabeller: BankAccounts
og en yderligere tabel kaldet Transactions
.
BankAccounts table
Transactions table
Antag, at vi kun ønsker at hente de kontonumre, der har udført mindst én transaktion.
I denne opgave har vi en forespørgsel, der ikke er optimeret. Din opgave er at omskrive den på en mere optimal måde.
Her er en liste over de vigtigste teknikker til omskrivning af forespørgsler for at forbedre optimeringen:
-
Angiv kolonner eksplicit: I stedet for at bruge stjerne (
*
)-wildcardet, skal du eksplicit nævne kolonnenavne i forespørgsler for bedre ydeevne, læsbarhed og vedligeholdelse; -
Minimer underforespørgsler: Reducer brugen af underforespørgsler for at optimere forespørgselsydelsen. Overvej alternativer som joins eller afledte tabeller for at undgå kompleksitet og overhead;
-
Undgå gentagne IN-operatorer: Begræns brugen af
IN
-operatoren i forespørgsler for at forhindre ydeevneproblemer. Overvej i stedet at brugeJOIN
ellerEXISTS
-klausuler for mere effektive eksekveringsplaner; -
Organisér joins logisk: Start SQL-joins med hovedtabellen og tilføj derefter relaterede tabeller for at optimere forespørgselsstruktur og databaseoptimering;
-
Brug restriktive WHERE-betingelser: Forbedr forespørgselsydelsen ved at inkludere restriktive betingelser i
WHERE
-klausulen for at filtrere rækker og øge eksekveringshastigheden; -
Refaktorer kode til lagrede procedurer eller funktioner: Indkapsl gentagne kodeafsnit i lagrede procedurer eller brugerdefinerede funktioner for genanvendelighed, modularitet og nemmere vedligeholdelse. Dette kan reducere redundans og optimere SQL-forespørgsler.
Swipe to start coding
Omskriv venligst forespørgslen mere optimalt. Bemærk, at vi kun skal hente kontonumre, der har udført mindst én transaktion (overført penge til en anden konto), sorteret i stigende rækkefølge.
Bemærk
Brug
LEFT
ellerINNER
join-type for at løse denne opgave.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 4.35
Udfordring: Forespørgselsoptimering
Stryg for at vise menuen
Lad os undersøge to tabeller: BankAccounts
og en yderligere tabel kaldet Transactions
.
BankAccounts table
Transactions table
Antag, at vi kun ønsker at hente de kontonumre, der har udført mindst én transaktion.
I denne opgave har vi en forespørgsel, der ikke er optimeret. Din opgave er at omskrive den på en mere optimal måde.
Her er en liste over de vigtigste teknikker til omskrivning af forespørgsler for at forbedre optimeringen:
-
Angiv kolonner eksplicit: I stedet for at bruge stjerne (
*
)-wildcardet, skal du eksplicit nævne kolonnenavne i forespørgsler for bedre ydeevne, læsbarhed og vedligeholdelse; -
Minimer underforespørgsler: Reducer brugen af underforespørgsler for at optimere forespørgselsydelsen. Overvej alternativer som joins eller afledte tabeller for at undgå kompleksitet og overhead;
-
Undgå gentagne IN-operatorer: Begræns brugen af
IN
-operatoren i forespørgsler for at forhindre ydeevneproblemer. Overvej i stedet at brugeJOIN
ellerEXISTS
-klausuler for mere effektive eksekveringsplaner; -
Organisér joins logisk: Start SQL-joins med hovedtabellen og tilføj derefter relaterede tabeller for at optimere forespørgselsstruktur og databaseoptimering;
-
Brug restriktive WHERE-betingelser: Forbedr forespørgselsydelsen ved at inkludere restriktive betingelser i
WHERE
-klausulen for at filtrere rækker og øge eksekveringshastigheden; -
Refaktorer kode til lagrede procedurer eller funktioner: Indkapsl gentagne kodeafsnit i lagrede procedurer eller brugerdefinerede funktioner for genanvendelighed, modularitet og nemmere vedligeholdelse. Dette kan reducere redundans og optimere SQL-forespørgsler.
Swipe to start coding
Omskriv venligst forespørgslen mere optimalt. Bemærk, at vi kun skal hente kontonumre, der har udført mindst én transaktion (overført penge til en anden konto), sorteret i stigende rækkefølge.
Bemærk
Brug
LEFT
ellerINNER
join-type for at løse denne opgave.
Løsning
Tak for dine kommentarer!
Awesome!
Completion rate improved to 4.35single