Ottimizzazione query SQL

Ottimizzazione delle query SQL per migliorare le prestazioni delle basi di dati. Domande frequenti su tecniche e best practices.

LynxGinevra0·40 schede·40 domande
universitàcomputer_sciencedatabases
0
Lo so
1 / 40
0
Sto imparando
Fronte

Che cos'è l'ottimizzazione delle query SQL?

Tocca per girare
Retro

È il processo di miglioramento delle prestazioni delle query SQL per ridurre il tempo di esecuzione e l'uso delle risorse.

Tocca per girare
Lo so
Sto imparando

Quiz(40 domande)

Domanda 1 di 40

1. Qual è il principale scopo dell'ottimizzazione delle query SQL?

Termini in questo set(40)

Fondamenti dell'Ottimizzazione(16)

Che cos'è l'ottimizzazione delle query SQL?

È il processo di miglioramento delle prestazioni delle query SQL per ridurre il tempo di esecuzione e l'uso delle risorse.

Qual è l'obiettivo principale dell'ottimizzazione?

Ridurre il tempo di risposta delle query e l'uso della CPU e della memoria.

Vero o falso: L'ottimizzazione è necessaria solo per database grandi.

Falso. Anche le query su database piccoli possono beneficiare dell'ottimizzazione.

Quali sono le tecniche comuni di ottimizzazione?

- Uso di indici - Scrittura di query efficienti - Riduzione delle join inutili - Utilizzo di funzioni aggregate

Cosa sono gli indici?

Strutture dati che migliorano la velocità delle operazioni di ricerca nel database, riducendo il numero di record da esaminare.

Come influiscono le join sulle performance?

Le join complesse possono rallentare le query, specialmente se non ottimizzate. È importante limitare le join necessarie.

Compila il vuoto: L'ottimizzazione delle query aiuta a _____ le risorse del server.

conservare

Qual è l'importanza delle query scritte efficientemente?

Query efficienti riducono il carico sul database e migliorano i tempi di risposta per l'utente finale.

Cosa significa denormalizzazione?

È il processo di riduzione della normalizzazione per migliorare le performance delle query, a costo di una maggiore ridondanza.

Qual è l'impatto delle funzioni aggregate?

Possono semplificare le query ma anche richiedere più risorse. Utilizzarle con attenzione è fondamentale.

Vero o falso: Usare SELECT * è sempre il migliore approccio.

Falso. È meglio specificare solo le colonne necessarie per ridurre la quantità di dati trasferiti.

Cosa significa l'uso di subquery?

Le subquery possono semplificare la logica di una query, ma possono anche rallentare le performance se non utilizzate con cautela.

Qual è il ruolo della cache delle query?

Riduce il tempo di esecuzione delle query memorizzando i risultati delle query precedenti per un rapido accesso.

Come può l'analisi delle query aiutare nell'ottimizzazione?

Permette di identificare i punti deboli nelle query e suggerire miglioramenti per aumentare l'efficienza.

Qual è una buona pratica per l'ottimizzazione delle query?

Evitare le operazioni non necessarie e semplificare le espressioni per ridurre il carico computazionale.

Qual è l'effetto di una query non ottimizzata?

Può portare a un aumento dei tempi di risposta e a un uso inefficiente delle risorse del server.

Indici e Performance(12)

Cosa sono gli indici in SQL?

Gli indici sono strutture dati che migliorano la velocità di accesso ai dati nelle tabelle, permettendo ricerche più rapide.

Indici unici vs indici non unici?

- Indici unici: garantiscono valori distinti. - Indici non unici: permettono duplicati.

Vero o falso: Gli indici sempre migliorano le performance.

Falso. Gli indici possono rallentare le operazioni di scrittura (INSERT, UPDATE, DELETE) a causa dell'overhead di aggiornamento.

Qual è il costo di un indice?

Il costo di un indice include: - Maggiore utilizzo di spazio su disco. - Tempo di aggiornamento delle strutture al momento della scrittura.

Cosa influisce sull'efficacia di un indice?

L'efficacia dipende da: - La selettività dell'indice. - La dimensione della tabella. - Le query eseguite.

Cosa significa 'selettività' in un indice?

La selettività misura quanto un indice può ridurre il numero di righe da scansionare. Maggiore è la selettività, migliore è l'indice.

Esempio di utilizzo di un indice.

Se abbiamo una tabella 'Clienti' e cerchiamo per 'ID', un indice su 'ID' velocizza la ricerca: SELECT * FROM Clienti WHERE ID = 1;

Come creare un indice in SQL?

Utilizzando la sintassi: CREATE INDEX nome_indice ON nome_tabella(colonna1, colonna2);

Qual è l'impatto degli indici sulle join?

Gli indici migliorano le performance delle join, specialmente su colonne usate nei criteri di join.

Vero o falso: Un indice su ogni colonna è sempre utile.

Falso. Troppi indici possono rallentare le scritture e aumentare l'uso di spazio.

Quando è consigliato utilizzare indici?

È consigliato utilizzare indici quando: - Si eseguono query frequenti su colonne specifiche. - Le tabelle sono grandi.

Qual è la differenza tra indice cluster e non cluster?

- Indice cluster: ordina fisicamente i dati. - Indice non cluster: crea una struttura separata dai dati.

Analisi delle Query(12)

Qual è l'obiettivo principale dell'analisi delle query?

Migliorare le performance delle query, riducendo il tempo di esecuzione e il carico sul database.

Vero o falso: L'analisi delle query è inutile senza indici.

Falso. Anche senza indici, l'analisi può rivelare inefficienze e aiutare a migliorare le query.

Cosa si intende per 'piano di esecuzione'?

È un'analisi dettagliata di come il database eseguirà una query, mostrando i passi e le operazioni necessarie.

Qual è una tecnica comune per analizzare le query?

Utilizzare il comando EXPLAIN per visualizzare il piano di esecuzione e identificare colli di bottiglia.

Qual è l'impatto di una JOIN non ottimizzata?

Può portare a un'elevata complessità computazionale e a rallentamenti significativi nelle prestazioni.

Qual è uno strumento utile per il monitoraggio delle query?

Il profiler del database, che consente di registrare e analizzare le query in esecuzione.

Cerca il miglioramento: SELECT * FROM table

Meglio specificare le colonne necessarie anziché utilizzare SELECT *, riducendo il carico di dati.

Cosa sono le statistiche delle tabelle?

Informazioni sui dati contenuti nelle tabelle, utilizzate dal motore di database per ottimizzare le query.

Confronta query con e senza WHERE.

Con WHERE: meno dati elaborati; senza WHERE: tutti i dati, maggior carico e lentezza.

Qual è il ruolo delle variabili di sessione?

Possono influenzare il comportamento delle query ottimizzando parametri come timeout e caching.

Riempi il vuoto: L'analisi delle query aiuta a identificare ______.

inefficienze e potenziali aree di miglioramento nelle operazioni sulle tabelle.

Come si può migliorare una subquery?

Trasformandola in un JOIN, se possibile, per migliorare le performance e semplificare l'esecuzione.

Domande in questo set(40)

1. Qual è il principale scopo dell'ottimizzazione delle query SQL?

A.Ridurre il tempo di risposta delle query
B.Aumentare il numero di join
C.Comprimere i dati nel database
D.Rimuovere gli indici dal database

2. Qual è l'obiettivo principale dell'analisi delle query?

A.Migliorare le performance delle query
B.Aumentare il numero di dati elaborati
C.Ridurre il numero di tabelle nel database
D.Aumentare il timeout delle query

3. Cosa definisce un indice unico in SQL?

A.Garantisce valori distinti nella colonna indicizzata
B.Permette valori duplicati nella colonna indicizzata
C.Non ha impatto sulle performance delle query
D.Richiede sempre una colonna primaria

4. Cosa si intende per denormalizzazione?

A.Riduzione della normalizzazione per migliorare le performance
B.Aumento della normalizzazione per evitare ridondanza
C.Eliminazione di tabelle nel database
D.Creazione di indici aggiuntivi

5. Vero o falso: L'analisi delle query è superflua se si utilizzano indici.

A.Falso
B.Vero
C.Dipende dal tipo di indice
D.Solo per query semplici

6. Qual è un potenziale svantaggio degli indici?

A.Rallentano le operazioni di scrittura
B.Aumentano la velocità di lettura
C.Non influiscono sulle join
D.Riduce lo spazio su disco

7. Vero o falso: Le join complesse rendono sempre le query più veloci.

A.Falso
B.Vero
C.Solo in alcuni casi
D.Dipende dal tipo di database

8. Cosa rappresenta il 'piano di esecuzione' per una query?

A.Un'analisi delle operazioni necessarie per eseguire la query
B.Un report sulle performance passate
C.Un elenco delle tabelle coinvolte
D.Un grafico delle statistiche

9. Come influiscono gli indici sulla selettività delle query?

A.Migliorano la selettività riducendo il numero di righe da scansionare
B.Non hanno alcun impatto sulla selettività
C.Riducono il numero di colonne nella tabella
D.Aumentano il numero di righe nella tabella

10. Quale delle seguenti affermazioni è vera riguardo all'uso di indici?

A.Migliorano la velocità delle operazioni di ricerca
B.Riducono il numero di colonne disponibili
C.Fanno aumentare sempre il tempo di scrittura
D.Rendono i dati meno accessibili

11. Qual è una tecnica efficace per analizzare le query?

A.Utilizzare il comando EXPLAIN
B.Eseguire la query senza indici
C.Aggiungere colonne non necessarie
D.Ignorare le statistiche delle tabelle

12. Qual è la differenza principale tra un indice cluster e uno non cluster?

A.L'indice cluster ordina fisicamente i dati
B.L'indice non cluster è più veloce di un indice cluster
C.Entrambi sono identici nella loro funzionalità
D.Un indice non cluster non può avere colonne duplicate

13. Qual è l'effetto di utilizzare SELECT * in una query?

A.Aumenta la quantità di dati trasferiti
B.Migliora sempre le performance
C.Riduce l'uso di risorse
D.Elimina la necessità di indici

14. Qual è l'effetto di una JOIN non ottimizzata?

A.Può causare rallentamenti nelle prestazioni
B.Riduce il numero di righe restituite
C.Rende la query più semplice
D.Aumenta la velocità di esecuzione

15. Quale delle seguenti affermazioni è falsa riguardo agli indici?

A.Gli indici sono sempre utili per tutte le colonne
B.Gli indici possono migliorare le performance delle letture
C.Gli indici possono aumentare l'uso di spazio su disco
D.Gli indici richiedono tempo aggiuntivo per essere aggiornati

16. Cosa si intende per query cache?

A.Memorizza i risultati delle query precedenti
B.Riduce la dimensione delle tabelle
C.Aumenta la complessità delle query
D.Crea backup automatici delle query

17. Quale strumento è utile per monitorare le query nel database?

A.Il profiler del database
B.Il gestore delle eccezioni
C.L'editor SQL
D.Il generatore di report

18. Quando è consigliato creare un indice su una tabella?

A.Quando le colonne sono frequentemente utilizzate in query di ricerca
B.Quando la tabella è molto piccola
C.Quando si eseguono solo operazioni di scrittura
D.Quando non si utilizza mai la tabella

19. Qual è una buona pratica durante la scrittura delle query SQL?

A.Utilizzare sempre funzioni aggregate
B.Evitare operazioni non necessarie
C.Scrivere query lunghe e complesse
D.Usare solo subquery

20. Qual è il miglior approccio per la selezione delle colonne in una query?

A.Specificare solo le colonne necessarie
B.Utilizzare sempre SELECT *
C.Non selezionare colonne
D.Aggiungere colonne extra per sicurezza

21. Quale delle seguenti operazioni non è influenzata dagli indici?

A.Operazioni di lettura
B.Operazioni di scrittura
C.Operazioni di eliminazione
D.Operazioni di backup

22. Quale delle seguenti tecniche NON è usata per l'ottimizzazione delle query?

A.Uso di indici
B.Scrivere query inefficienti
C.Riduzione delle join inutili
D.Utilizzo di funzioni aggregate

23. Cosa rappresentano le statistiche delle tabelle?

A.Informazioni sui dati presenti nelle tabelle
B.Un riepilogo delle query eseguite
C.Errori riscontrati durante l'esecuzione
D.La dimensione totale del database

24. Qual è l'effetto di un indice su una join tra due tabelle?

A.Migliora le performance delle join
B.Rende impossibile eseguire join
C.Aumenta la complessità delle query
D.Non ha alcun effetto

25. Cosa può influenzare negativamente le performance di una query?

A.Un numero elevato di join non necessarie
B.Una query ben scritta
C.L'uso di indici appropriati
D.La memorizzazione nella cache

26. Confronta le query con e senza una clausola WHERE.

A.Quella senza WHERE elabora più dati
B.Quella con WHERE elabora più dati
C.Entrambe sono identiche
D.Quella senza WHERE è sempre più veloce

27. Qual è il comando SQL per eliminare un indice?

A.DROP INDEX nome_indice
B.REMOVE INDEX nome_indice
C.DELETE INDEX nome_indice
D.ALTER INDEX nome_indice

28. Qual è l'importanza delle funzioni aggregate in una query?

A.Possono semplificare le query ma aumentare l'uso delle risorse
B.Riducono sempre il carico computazionale
C.Eliminano la necessità di join
D.Sono sempre più veloci delle subquery

29. Qual è il ruolo delle variabili di sessione nelle query?

A.Ottimizzare parametri come timeout e caching
B.Aumentare i dati restituiti
C.Ridurre il numero di errori
D.Controllare l'accesso ai dati

30. Cosa si intende per 'costo' di un indice?

A.Tempo di aggiornamento e spazio su disco
B.Solo il tempo di aggiornamento
C.Solo lo spazio su disco
D.Nessun costo associato

31. Qual è l'effetto di una query non ottimizzata?

A.Aumento dei tempi di risposta
B.Miglioramento delle performance
C.Minore uso delle risorse
D.Eliminazione della necessità di analisi

32. L'analisi delle query aiuta a identificare ______.

A.inefficienze e potenziali aree di miglioramento
B.solo errori di sintassi
C.le dimensioni delle tabelle
D.le versioni del database

33. Qual è il vantaggio di avere un indice su una colonna frequentemente cercata?

A.Velocizza l'accesso ai dati nella colonna
B.Rende la tabella più grande
C.Complica le operazioni di scrittura
D.Elimina la necessità di backup

34. Come può l'analisi delle query contribuire all'ottimizzazione?

A.Identifica i punti deboli nelle query
B.Aumenta automaticamente le risorse
C.Riduce il numero di colonne
D.Elimina la necessità di indici

35. Come si può migliorare una subquery?

A.Trasformandola in un JOIN, se possibile
B.Aggiungendo più condizioni
C.Rimuovendo tutte le colonne
D.Evitando di utilizzare indici

36. Quale delle seguenti affermazioni è corretta riguardo alla selettività di un indice?

A.Una maggiore selettività migliora l'efficacia dell'indice.
B.La selettività non ha impatto sull'efficacia dell'indice.
C.Un indice con bassa selettività è sempre migliore.
D.La selettività è irrilevante nelle tabelle piccole.

37. Cosa indica una scrittura efficiente di una query?

A.Meno carico sul database
B.Maggiore complessità
C.Utilizzo di SELECT *
D.Più join possibile

38. Quando è consigliato utilizzare le subquery?

A.Per semplificare la logica della query
B.Sempre, senza eccezioni
C.Quando si desidera aumentare la complessità
D.Se non ci sono join necessarie

39. Quale è un vantaggio dell'uso degli indici in un database?

A.Velocizzano le operazioni di ricerca
B.Riducono il numero di record nel database
C.Aumentano il tempo di scrittura
D.Complicano le query

40. Quale delle seguenti affermazioni è corretta riguardo all'ottimizzazione delle query SQL?

A.L'ottimizzazione può ridurre i tempi di risposta delle query.
B.Le query ottimizzate richiedono sempre più risorse di sistema.
C.L'ottimizzazione è utile solo per database relazionali.
D.Le query non ottimizzate sono sempre più facili da scrivere.

Set correlati

Crea il tuo set di studio

Carica un PDF, incolla le tue note o descrivi un argomento – l'IA genera schede, quiz e altro in pochi secondi.