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
Avanserte Teknikker i SQL

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

  1. Spesifiser kolonner eksplisitt: I stedet for å bruke stjerne (*)-jokertegnet, 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-klausuler 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-klausulen 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 gjenbrukbarhet, modularitet og enklere vedlikehold. Dette kan redusere redundans og optimalisere SQL-spørringer.

Oppgave

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 eller INNER join-type for å løse denne oppgaven.

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

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

  1. Spesifiser kolonner eksplisitt: I stedet for å bruke stjerne (*)-jokertegnet, 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-klausuler 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-klausulen 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 gjenbrukbarhet, modularitet og enklere vedlikehold. Dette kan redusere redundans og optimalisere SQL-spørringer.

Oppgave

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 eller INNER join-type for å løse denne oppgaven.

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!

close

Awesome!

Completion rate improved to 4.35
Seksjon 2. Kapittel 7
single

single

some-alt