Che cos'è una scansione della tabella completa?
Una scansione completa della tabella è uno dei modi più lenti, ma più accurati, di scansionare 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 condizione imposta dall'amministratore. Il trigger più comune per una scansione 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 di grandi dimensioni, la scansione della tabella completa 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ù approfondita perché, anche se trova una riga che corrisponde alla condizione, continuerà a eseguire la scansione attraverso 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 molteplici 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 registra la posizione di ciascun nome. Questo aiuta sia l'amministratore che il database a trovare 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.
Così tanta memoria è allocata a una scansione completa della tabella ed è così approfondita che una scansione completa è molto lenta. Se l'amministratore ha solo bisogno di una o poche righe per la query, di solito è più veloce solo per creare un piccolo indice. Sebbene ciò sia vero, se la query è di grandi dimensioni, la scansione completa potrebbe effettivamente funzionare più velocemente. Se l'amministratore sta eseguendo una query che interessa il 5 percento o più dell'intero database, in genere una scansione completa sarà in grado di eseguire la funzione più rapidamente rispetto all'amministratore che esegue la stessa operazione manualmente.
Un amministratore utilizzerà spesso una funzione "ESPLAIN PLAN", 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à efficace.