Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Spørringsoptimalisering | Spørringsoptimalisering.Indekser
SQL-optimalisering og spørringsfunksjoner

bookUtfordring: 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:

  1. Spesifiser kolonner eksplisitt: i stedet for å bruke stjerne (*), oppgi kolonnenavn eksplisitt i spørringer for bedre ytelse, lesbarhet og vedlikeholdbarhet;

  2. 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;

  3. Unngå gjentatt bruk av IN-operatoren: begrens bruken av IN-operatoren i spørringer for å forhindre ytelsespåvirkning. Vurder i stedet å bruke JOIN eller EXISTS for mer effektive kjøreplaner;

  4. Organiser JOINs logisk: start SQL JOINs med hovedtabellen og deretter JOIN med relaterte tabeller for å optimalisere spørringsorganisering og databaseoptimalisering;

  5. Bruk restriktive WHERE-betingelser: forbedre spørringsytelsen ved å inkludere restriktive betingelser i WHERE-klasulen for å filtrere rader og øke kjørehastigheten;

  6. 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.

Oppgave

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 JOIN mellom tabellene BankAccounts og Transactions;
  • Ikke bruk operatoren IN eller underforespørsler;
  • Sorter resultatet etter account_number i stigende rekkefølge.

Løsning

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 7
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

close

Awesome!

Completion rate improved to 4.55

bookUtfordring: 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:

  1. Spesifiser kolonner eksplisitt: i stedet for å bruke stjerne (*), oppgi kolonnenavn eksplisitt i spørringer for bedre ytelse, lesbarhet og vedlikeholdbarhet;

  2. 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;

  3. Unngå gjentatt bruk av IN-operatoren: begrens bruken av IN-operatoren i spørringer for å forhindre ytelsespåvirkning. Vurder i stedet å bruke JOIN eller EXISTS for mer effektive kjøreplaner;

  4. Organiser JOINs logisk: start SQL JOINs med hovedtabellen og deretter JOIN med relaterte tabeller for å optimalisere spørringsorganisering og databaseoptimalisering;

  5. Bruk restriktive WHERE-betingelser: forbedre spørringsytelsen ved å inkludere restriktive betingelser i WHERE-klasulen for å filtrere rader og øke kjørehastigheten;

  6. 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.

Oppgave

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 JOIN mellom tabellene BankAccounts og Transactions;
  • Ikke bruk operatoren IN eller underforespørsler;
  • Sorter resultatet etter account_number i stigende rekkefølge.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 7
single

single

some-alt