Che cos’è una scansione completa della tabella?

Una scansione completa della tabella è uno dei modi più lenti, ma più completi, di eseguire la scansione di un database. Il motivo per cui questo metodo di scansione è così lento è che il database legge ogni riga e verifica se una o più colonne sono valide per una query o una condizione imposta dall’amministratore. Il trigger più comune per un’analisi completa della tabella è che il database non contiene una riga di indice da cui è possibile avviare la query. Di solito è meglio scansionare la tabella manualmente se si cerca una riga ma, se si cerca di più o se si guarda attraverso una tabella grande, la scansione completa della tabella funzionerà meglio.

I database sono dotati di funzioni di scansione che esaminano le tabelle per trovare informazioni o per controllare la tabella per assicurarsi che possa soddisfare una condizione. Una scansione completa della tabella è la scansione più completa perché, anche se trova una riga che corrisponde alla condizione, continuerà a esaminare il resto delle righe. Questa funzione è costosa, il che significa che utilizza una grande quantità di memoria, perché la scansione legge e scrive su ogni riga ed esegue anche più ricerche per controllare accuratamente la riga. È necessaria una scansione completa quando viene eseguita una query, o una funzione, ma il database non vede un indice per eseguire la query.

Un indice è una colonna in una tabella che indicizza le informazioni sulla tabella in base alle preferenze dell’amministratore. Ad esempio, se l’amministratore desidera indicizzare le informazioni sui nomi, la colonna dell’indice registrerà la posizione di ciascun nome. Questo aiuta sia l’amministratore che il database a trovare le informazioni nascoste in profondità nel database. Se nella tabella non è presente alcun indice, in genere viene avviata automaticamente una scansione completa della tabella per consentire l’esecuzione di una query.

Tanta memoria è allocata a una scansione completa della tabella ed è così completa che una scansione completa è molto lenta. Se l’amministratore necessita solo di una o poche righe per la query, di solito è più veloce creare un piccolo indice. Sebbene ciò sia vero, se la query è di grandi dimensioni, l’analisi completa potrebbe effettivamente funzionare più velocemente. Se l’amministratore sta effettuando una query che interessa il 5% o più dell’intero database, una scansione completa sarà in genere in grado di eseguire la funzione più rapidamente rispetto all’amministratore che esegue la stessa operazione manualmente.

Un amministratore utilizzerà spesso una funzione “SPIEGA PIANO”, che eseguirà una rapida scansione della tabella. Questo mostrerà all’amministratore se è necessario un indice per la query. Prendendo i risultati, l’amministratore saprà se la query può essere eseguita così com’è, se deve creare o cercare un indice o se eseguire una scansione completa della tabella sarà efficiente.