Sfida: Ottimizzazione delle Query
Supponiamo di voler recuperare solo i numeri di conto che hanno effettuato almeno una transazione.
In questo esercizio, abbiamo una query che non è ottimizzata. Il tuo compito è riscriverla in modo più ottimale.
Ecco un elenco delle principali tecniche di riscrittura delle query per migliorare l'ottimizzazione:
-
Specificare esplicitamente le colonne: invece di utilizzare il carattere jolly asterisco (
*), indicare esplicitamente i nomi delle colonne nelle query per ottenere migliori prestazioni, leggibilità e manutenibilità; -
Minimizzare le sottoquery: ridurre l'uso delle sottoquery per ottimizzare le prestazioni delle query. Considerare alternative come join o tabelle derivate per evitare complessità e sovraccarico;
-
Evitare l'uso ripetuto dell'operatore IN: limitare l'utilizzo dell'operatore
INnelle query per prevenire impatti sulle prestazioni. In alternativa, considerare l'uso delle clausoleJOINoEXISTSper piani di esecuzione più efficienti; -
Organizzare i join in modo logico: iniziare i join SQL dalla tabella principale e poi unire le tabelle correlate per ottimizzare l'organizzazione della query e l'ottimizzazione da parte del motore di database;
-
Utilizzare condizioni WHERE restrittive: migliorare le prestazioni delle query includendo condizioni restrittive nella clausola
WHEREper filtrare le righe e aumentare la velocità di esecuzione; -
Rifattorizzare il codice in stored procedure o funzioni: incapsulare segmenti di codice ripetitivi in stored procedure o funzioni definite dall'utente per la riusabilità del codice, la modularità e una manutenzione più semplice. Queste possono ridurre la ridondanza e ottimizzare le query SQL.
Swipe to start coding
Il tuo compito è scrivere una query che restituisca un elenco di tutti i numeri di conto che hanno effettuato almeno una transazione (trasferito denaro su un altro conto). I risultati devono essere ordinati in ordine crescente per numero di conto.
Per rendere la tua query più efficiente e leggibile, segui questi passaggi:
- Seleziona solo la colonna
account_number; - Utilizza un
INNER JOINtra le tabelleBankAccountseTransactions; - Non utilizzare l'operatore
INné sottoquery; - Ordina il risultato per
account_numberin ordine crescente.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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?
Fantastico!
Completion tasso migliorato a 4.55
Sfida: Ottimizzazione delle Query
Scorri per mostrare il menu
Supponiamo di voler recuperare solo i numeri di conto che hanno effettuato almeno una transazione.
In questo esercizio, abbiamo una query che non è ottimizzata. Il tuo compito è riscriverla in modo più ottimale.
Ecco un elenco delle principali tecniche di riscrittura delle query per migliorare l'ottimizzazione:
-
Specificare esplicitamente le colonne: invece di utilizzare il carattere jolly asterisco (
*), indicare esplicitamente i nomi delle colonne nelle query per ottenere migliori prestazioni, leggibilità e manutenibilità; -
Minimizzare le sottoquery: ridurre l'uso delle sottoquery per ottimizzare le prestazioni delle query. Considerare alternative come join o tabelle derivate per evitare complessità e sovraccarico;
-
Evitare l'uso ripetuto dell'operatore IN: limitare l'utilizzo dell'operatore
INnelle query per prevenire impatti sulle prestazioni. In alternativa, considerare l'uso delle clausoleJOINoEXISTSper piani di esecuzione più efficienti; -
Organizzare i join in modo logico: iniziare i join SQL dalla tabella principale e poi unire le tabelle correlate per ottimizzare l'organizzazione della query e l'ottimizzazione da parte del motore di database;
-
Utilizzare condizioni WHERE restrittive: migliorare le prestazioni delle query includendo condizioni restrittive nella clausola
WHEREper filtrare le righe e aumentare la velocità di esecuzione; -
Rifattorizzare il codice in stored procedure o funzioni: incapsulare segmenti di codice ripetitivi in stored procedure o funzioni definite dall'utente per la riusabilità del codice, la modularità e una manutenzione più semplice. Queste possono ridurre la ridondanza e ottimizzare le query SQL.
Swipe to start coding
Il tuo compito è scrivere una query che restituisca un elenco di tutti i numeri di conto che hanno effettuato almeno una transazione (trasferito denaro su un altro conto). I risultati devono essere ordinati in ordine crescente per numero di conto.
Per rendere la tua query più efficiente e leggibile, segui questi passaggi:
- Seleziona solo la colonna
account_number; - Utilizza un
INNER JOINtra le tabelleBankAccountseTransactions; - Non utilizzare l'operatore
INné sottoquery; - Ordina il risultato per
account_numberin ordine crescente.
Soluzione
Grazie per i tuoi commenti!
single