Sfida: Ottimizzazione delle Query
Esploriamo due tabelle: BankAccounts
e un'ulteriore tabella chiamata Transactions
.
Tabella BankAccounts
Tabella Transactions
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ù efficiente.
Ecco un elenco delle principali tecniche di riscrittura delle query per migliorarne l'ottimizzazione:
-
Specificare esplicitamente le colonne: invece di utilizzare il carattere jolly (
*
), 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
IN
nelle query per prevenire impatti sulle prestazioni. In alternativa, considerare l'uso delle clausoleJOIN
oEXISTS
per 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
WHERE
per 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 riutilizzabilità del codice, modularità e manutenzione semplificata. Queste possono ridurre la ridondanza e ottimizzare le query SQL.
Swipe to start coding
Riscrivere la query in modo più ottimale. Prestare attenzione al fatto che è necessario ottenere solo i numeri di conto che hanno effettuato almeno una transazione (trasferito denaro su un altro conto) ordinati in ordine crescente.
Nota
Utilizzare il tipo di join
LEFT
oINNER
per completare questo compito.
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 unoptimized query?
What would an optimized query look like for this task?
Can you explain why the optimized query is better?
Awesome!
Completion rate improved to 4.35
Sfida: Ottimizzazione delle Query
Scorri per mostrare il menu
Esploriamo due tabelle: BankAccounts
e un'ulteriore tabella chiamata Transactions
.
Tabella BankAccounts
Tabella Transactions
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ù efficiente.
Ecco un elenco delle principali tecniche di riscrittura delle query per migliorarne l'ottimizzazione:
-
Specificare esplicitamente le colonne: invece di utilizzare il carattere jolly (
*
), 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
IN
nelle query per prevenire impatti sulle prestazioni. In alternativa, considerare l'uso delle clausoleJOIN
oEXISTS
per 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
WHERE
per 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 riutilizzabilità del codice, modularità e manutenzione semplificata. Queste possono ridurre la ridondanza e ottimizzare le query SQL.
Swipe to start coding
Riscrivere la query in modo più ottimale. Prestare attenzione al fatto che è necessario ottenere solo i numeri di conto che hanno effettuato almeno una transazione (trasferito denaro su un altro conto) ordinati in ordine crescente.
Nota
Utilizzare il tipo di join
LEFT
oINNER
per completare questo compito.
Soluzione
Grazie per i tuoi commenti!
Awesome!
Completion rate improved to 4.35single