Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Forespørgselsoptimering | Forespørgselsoptimering.Indekser
Quizzes & Challenges
Quizzes
Challenges
/
SQL-optimering og Forespørgselsfunktioner

bookUdfordring: Forespørgselsoptimering

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:

  1. Angiv kolonner eksplicit: i stedet for at bruge stjerne (*)-wildcardet, angiv kolonnenavne eksplicit i forespørgsler for bedre ydeevne, læsbarhed og vedligeholdelse;

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

  3. Undgå gentagne IN-operatorer: begræns brugen af IN-operatoren i forespørgsler for at forhindre ydeevneproblemer. Overvej i stedet at bruge JOIN- eller EXISTS-klausuler for mere effektive eksekveringsplaner;

  4. Organisér joins logisk: start SQL-joins med hovedtabellen og tilføj derefter relaterede tabeller for at optimere forespørgselsstruktur og databaseoptimering;

  5. Brug restriktive WHERE-betingelser: forbedr forespørgselsydelsen ved at inkludere restriktive betingelser i WHERE-klausulen for at filtrere rækker og øge eksekveringshastigheden;

  6. Refaktorer kode til lagrede procedurer eller funktioner: indkapsl gentagne kodeafsnit i lagrede procedurer eller brugerdefinerede funktioner for genanvendelighed, modularitet og nemmere vedligeholdelse. Disse kan reducere redundans og optimere SQL-forespørgsler.

Opgave

Swipe to start coding

Din opgave er at skrive en forespørgsel, der returnerer en liste over alle kontonumre, som har udført mindst én transaktion (overført penge til en anden konto). Resultatet skal sorteres stigende efter kontonummer.

For at gøre din forespørgsel mere effektiv og læsbar, følg disse trin:

  • Vælg kun kolonnen account_number;
  • Brug et INNER JOIN mellem tabellerne BankAccounts og Transactions;
  • Brug ikke IN-operatoren eller underforespørgsler;
  • Sortér resultatet efter account_number i stigende rækkefølge.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 7
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you show me the original unoptimized query?

What database system are we using for this task?

Can you provide an example of the tables involved?

close

Awesome!

Completion rate improved to 4.55

bookUdfordring: Forespørgselsoptimering

Stryg for at vise menuen

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:

  1. Angiv kolonner eksplicit: i stedet for at bruge stjerne (*)-wildcardet, angiv kolonnenavne eksplicit i forespørgsler for bedre ydeevne, læsbarhed og vedligeholdelse;

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

  3. Undgå gentagne IN-operatorer: begræns brugen af IN-operatoren i forespørgsler for at forhindre ydeevneproblemer. Overvej i stedet at bruge JOIN- eller EXISTS-klausuler for mere effektive eksekveringsplaner;

  4. Organisér joins logisk: start SQL-joins med hovedtabellen og tilføj derefter relaterede tabeller for at optimere forespørgselsstruktur og databaseoptimering;

  5. Brug restriktive WHERE-betingelser: forbedr forespørgselsydelsen ved at inkludere restriktive betingelser i WHERE-klausulen for at filtrere rækker og øge eksekveringshastigheden;

  6. Refaktorer kode til lagrede procedurer eller funktioner: indkapsl gentagne kodeafsnit i lagrede procedurer eller brugerdefinerede funktioner for genanvendelighed, modularitet og nemmere vedligeholdelse. Disse kan reducere redundans og optimere SQL-forespørgsler.

Opgave

Swipe to start coding

Din opgave er at skrive en forespørgsel, der returnerer en liste over alle kontonumre, som har udført mindst én transaktion (overført penge til en anden konto). Resultatet skal sorteres stigende efter kontonummer.

For at gøre din forespørgsel mere effektiv og læsbar, følg disse trin:

  • Vælg kun kolonnen account_number;
  • Brug et INNER JOIN mellem tabellerne BankAccounts og Transactions;
  • Brug ikke IN-operatoren eller underforespørgsler;
  • Sortér resultatet efter account_number i stigende rækkefølge.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 7
single

single

some-alt