Utfordring: Spørringsoptimalisering
Anta at vi ønsker å hente kun kontonumre 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 (
*), 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 å brukeJOINellerEXISTSfor 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-klasulen 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 gjenbruk, modularitet og enklere vedlikehold. Dette kan redusere redundans og optimalisere SQL-spørringer.
Swipe to start coding
Din oppgave er å skrive en spørring som returnerer en liste over alle kontonumre som har utført minst én transaksjon (overført penger til en annen konto). Resultatene skal sorteres i stigende rekkefølge etter kontonummer.
For å gjøre spørringen mer effektiv og lesbar, følg disse trinnene:
- Velg kun kolonnen
account_number; - Bruk en
INNER JOINmellom tabelleneBankAccountsogTransactions; - Ikke bruk operatoren
INeller underforespørsler; - Sorter resultatet etter
account_numberi stigende rekkefølge.
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.55
Utfordring: Spørringsoptimalisering
Sveip for å vise menyen
Anta at vi ønsker å hente kun kontonumre 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 (
*), 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 å brukeJOINellerEXISTSfor 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-klasulen 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 gjenbruk, modularitet og enklere vedlikehold. Dette kan redusere redundans og optimalisere SQL-spørringer.
Swipe to start coding
Din oppgave er å skrive en spørring som returnerer en liste over alle kontonumre som har utført minst én transaksjon (overført penger til en annen konto). Resultatene skal sorteres i stigende rekkefølge etter kontonummer.
For å gjøre spørringen mer effektiv og lesbar, følg disse trinnene:
- Velg kun kolonnen
account_number; - Bruk en
INNER JOINmellom tabelleneBankAccountsogTransactions; - Ikke bruk operatoren
INeller underforespørsler; - Sorter resultatet etter
account_numberi stigende rekkefølge.
Løsning
Takk for tilbakemeldingene dine!
single