Utfordring: Spørringsoptimalisering
La oss utforske to tabeller: BankAccounts
og en ekstra tabell kalt Transactions
.
BankAccounts table
Transactions table
Anta at vi ønsker å hente kun kontonumrene som har utført minst én transaksjon.
I denne oppgaven har vi en spørring som ikke er optimalisert. Din oppgave er å skrive den om på en mer optimal måte.
Her er en liste over de viktigste teknikkene for omskriving av spørringer for å forbedre optimaliseringen:
-
Spesifiser kolonner eksplisitt: I stedet for å bruke stjerne (
*
)-jokertegnet, oppgi kolonnenavn eksplisitt i spørringer for bedre ytelse, lesbarhet og vedlikeholdbarhet; -
Minimer bruk av underforespørsler: Reduser bruken av underforespørsler for å optimalisere spørringsytelsen. Vurder alternativer som joins eller avledede tabeller for å unngå kompleksitet og overhead;
-
Unngå gjentatt bruk av IN-operatoren: Begrens bruken av
IN
-operatoren i spørringer for å forhindre ytelsespåvirkning. Vurder i stedet å brukeJOIN
- ellerEXISTS
-klausuler for mer effektive kjøreplaner; -
Organiser joins logisk: Start SQL-joins med hovedtabellen og deretter join med relaterte tabeller for å optimalisere spørringsorganisering og databaseoptimalisering;
-
Bruk restriktive WHERE-betingelser: Forbedre spørringsytelsen ved å inkludere restriktive betingelser i
WHERE
-klausulen for å filtrere rader og øke kjørehastigheten; -
Refaktorer kode til lagrede prosedyrer eller funksjoner: Kapsle inn gjentakende kode i lagrede prosedyrer eller brukerdefinerte funksjoner for gjenbrukbarhet, modularitet og enklere vedlikehold. Dette kan redusere redundans og optimalisere SQL-spørringer.
Swipe to start coding
Vennligst skriv om spørringen på en mer optimal måte. Merk at vi kun skal hente kontonumre som har utført minst én transaksjon (overført penger til en annen konto), sortert i stigende rekkefølge.
Merk
Bruk
LEFT
ellerINNER
join-type for å løse denne oppgaven.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 4.35
Utfordring: Spørringsoptimalisering
Sveip for å vise menyen
La oss utforske to tabeller: BankAccounts
og en ekstra tabell kalt Transactions
.
BankAccounts table
Transactions table
Anta at vi ønsker å hente kun kontonumrene som har utført minst én transaksjon.
I denne oppgaven har vi en spørring som ikke er optimalisert. Din oppgave er å skrive den om på en mer optimal måte.
Her er en liste over de viktigste teknikkene for omskriving av spørringer for å forbedre optimaliseringen:
-
Spesifiser kolonner eksplisitt: I stedet for å bruke stjerne (
*
)-jokertegnet, oppgi kolonnenavn eksplisitt i spørringer for bedre ytelse, lesbarhet og vedlikeholdbarhet; -
Minimer bruk av underforespørsler: Reduser bruken av underforespørsler for å optimalisere spørringsytelsen. Vurder alternativer som joins eller avledede tabeller for å unngå kompleksitet og overhead;
-
Unngå gjentatt bruk av IN-operatoren: Begrens bruken av
IN
-operatoren i spørringer for å forhindre ytelsespåvirkning. Vurder i stedet å brukeJOIN
- ellerEXISTS
-klausuler for mer effektive kjøreplaner; -
Organiser joins logisk: Start SQL-joins med hovedtabellen og deretter join med relaterte tabeller for å optimalisere spørringsorganisering og databaseoptimalisering;
-
Bruk restriktive WHERE-betingelser: Forbedre spørringsytelsen ved å inkludere restriktive betingelser i
WHERE
-klausulen for å filtrere rader og øke kjørehastigheten; -
Refaktorer kode til lagrede prosedyrer eller funksjoner: Kapsle inn gjentakende kode i lagrede prosedyrer eller brukerdefinerte funksjoner for gjenbrukbarhet, modularitet og enklere vedlikehold. Dette kan redusere redundans og optimalisere SQL-spørringer.
Swipe to start coding
Vennligst skriv om spørringen på en mer optimal måte. Merk at vi kun skal hente kontonumre som har utført minst én transaksjon (overført penger til en annen konto), sortert i stigende rekkefølge.
Merk
Bruk
LEFT
ellerINNER
join-type for å løse denne oppgaven.
Løsning
Takk for tilbakemeldingene dine!
Awesome!
Completion rate improved to 4.35single