Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Frågeoptimering | Frågeoptimering.Indexer
SQL-optimering och Frågefunktioner

bookUtmaning: Frågeoptimering

Anta att vi vill hämta endast de kontonummer som har genomfört minst en transaktion.

I denna uppgift har vi en fråga som inte är optimerad. Din uppgift är att skriva om den på ett mer optimalt sätt.

Här är en lista över de viktigaste teknikerna för omskrivning av frågor för att förbättra optimeringen:

  1. Specificera kolumner explicit: ange kolumnnamn i frågorna istället för att använda asterisk (*) wildcard för bättre prestanda, läsbarhet och underhållbarhet;

  2. Minimera underfrågor: minska användningen av underfrågor för att optimera frågans prestanda. Överväg alternativ som joins eller härledda tabeller för att undvika komplexitet och överbelastning;

  3. Undvik upprepade IN-operatorer: begränsa användningen av IN-operatorn i frågor för att förhindra prestandapåverkan. Använd istället JOIN eller EXISTS-satser för mer effektiva exekveringsplaner;

  4. Organisera joins logiskt: börja SQL-joins med huvudtabellen och anslut sedan till relaterade tabeller för att optimera frågans struktur och databasens optimering;

  5. Använd restriktiva WHERE-villkor: förbättra frågans prestanda genom att inkludera restriktiva villkor i WHERE-satsen för att filtrera rader och öka exekveringshastigheten;

  6. Omstrukturera kod till lagrade procedurer eller funktioner: kapsla in upprepande kodavsnitt i lagrade procedurer eller användardefinierade funktioner för återanvändbarhet, modularitet och enklare underhåll. Dessa kan minska redundans och optimera SQL-frågor.

Uppgift

Swipe to start coding

Din uppgift är att skriva en fråga som returnerar en lista över alla kontonummer som har genomfört minst en transaktion (överfört pengar till ett annat konto). Resultatet ska sorteras i stigande ordning efter kontonummer.

För att göra din fråga mer effektiv och lättläst, följ dessa steg:

  • Välj endast kolumnen account_number;
  • Använd en INNER JOIN mellan tabellerna BankAccounts och Transactions;
  • Använd inte operatorn IN eller underfrågor;
  • Sortera resultatet efter account_number i stigande ordning.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 7
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

Awesome!

Completion rate improved to 4.55

bookUtmaning: Frågeoptimering

Svep för att visa menyn

Anta att vi vill hämta endast de kontonummer som har genomfört minst en transaktion.

I denna uppgift har vi en fråga som inte är optimerad. Din uppgift är att skriva om den på ett mer optimalt sätt.

Här är en lista över de viktigaste teknikerna för omskrivning av frågor för att förbättra optimeringen:

  1. Specificera kolumner explicit: ange kolumnnamn i frågorna istället för att använda asterisk (*) wildcard för bättre prestanda, läsbarhet och underhållbarhet;

  2. Minimera underfrågor: minska användningen av underfrågor för att optimera frågans prestanda. Överväg alternativ som joins eller härledda tabeller för att undvika komplexitet och överbelastning;

  3. Undvik upprepade IN-operatorer: begränsa användningen av IN-operatorn i frågor för att förhindra prestandapåverkan. Använd istället JOIN eller EXISTS-satser för mer effektiva exekveringsplaner;

  4. Organisera joins logiskt: börja SQL-joins med huvudtabellen och anslut sedan till relaterade tabeller för att optimera frågans struktur och databasens optimering;

  5. Använd restriktiva WHERE-villkor: förbättra frågans prestanda genom att inkludera restriktiva villkor i WHERE-satsen för att filtrera rader och öka exekveringshastigheten;

  6. Omstrukturera kod till lagrade procedurer eller funktioner: kapsla in upprepande kodavsnitt i lagrade procedurer eller användardefinierade funktioner för återanvändbarhet, modularitet och enklare underhåll. Dessa kan minska redundans och optimera SQL-frågor.

Uppgift

Swipe to start coding

Din uppgift är att skriva en fråga som returnerar en lista över alla kontonummer som har genomfört minst en transaktion (överfört pengar till ett annat konto). Resultatet ska sorteras i stigande ordning efter kontonummer.

För att göra din fråga mer effektiv och lättläst, följ dessa steg:

  • Välj endast kolumnen account_number;
  • Använd en INNER JOIN mellan tabellerna BankAccounts och Transactions;
  • Använd inte operatorn IN eller underfrågor;
  • Sortera resultatet efter account_number i stigande ordning.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 7
single

single

some-alt