Was ist ein vollständiger Tabellenscan?
Ein vollständiger Tabellenscan ist eine der langsamsten, aber gründlichsten Methoden zum Scannen einer Datenbank. Diese Scanmethode ist so langsam, dass die Datenbank jede Zeile liest und prüft, ob eine oder mehrere Spalten für eine vom Administrator auferlegte Abfrage oder Bedingung gültig sind. Der häufigste Auslöser für einen vollständigen Tabellenscan ist, dass die Datenbank keine Indexzeile enthält, von der aus die Abfrage gestartet werden kann. Normalerweise ist es besser, die Tabelle manuell zu scannen, wenn Sie nach einer Zeile suchen. Wenn Sie jedoch nach mehr suchen oder eine große Tabelle durchsuchen, funktioniert der vollständige Tabellenscan besser.
Datenbanken sind mit Scanfunktionen ausgestattet, die Tabellen durchsuchen, um Informationen zu finden oder die Tabelle zu überprüfen, um sicherzustellen, dass sie eine Bedingung erfüllt. Ein vollständiger Tabellenscan ist der gründlichste Scan, da auch dann, wenn eine Zeile gefunden wird, die der Bedingung entspricht, die restlichen Zeilen weiter durchsucht werden. Diese Funktion ist teuer, dh sie belegt viel Speicher, da der Scan jede Zeile liest und schreibt und außerdem mehrere Suchvorgänge ausführlich durchführt, um die Zeile gründlich zu überprüfen. Ein vollständiger Scan ist erforderlich, wenn eine Abfrage oder Funktion ausgeführt wird, die Datenbank jedoch keinen Index zum Ausführen der Abfrage sieht.
Ein Index ist eine Spalte in einer Tabelle, die Informationen über die Tabelle gemäß den Vorgaben des Administrators indiziert. Wenn der Administrator beispielsweise Informationen zu Namen indizieren möchte, wird in der Indexspalte die Position jedes Namens aufgezeichnet. Dies hilft sowohl dem Administrator als auch der Datenbank, tief in der Datenbank verborgene Informationen zu finden. Befindet sich kein Index in der Tabelle, wird normalerweise automatisch ein vollständiger Tabellenscan gestartet, damit eine Abfrage ausgeführt werden kann.
Einem vollständigen Tabellenscan wird so viel Speicher zugewiesen, und er ist so gründlich, dass ein vollständiger Scan sehr langsam ist. Wenn der Administrator nur eine oder mehrere Zeilen für die Abfrage benötigt, ist es normalerweise schneller, nur einen kleinen Index zu erstellen. Dies ist zwar der Fall, aber wenn die Abfrage groß ist, kann der vollständige Scan tatsächlich schneller ausgeführt werden. Wenn der Administrator eine Abfrage vornimmt, die 5 Prozent oder mehr der gesamten Datenbank betrifft, kann ein vollständiger Scan die Funktion normalerweise schneller ausführen als der Administrator, der dasselbe manuell ausführt.
Ein Administrator verwendet häufig die Funktion "EXPLAIN PLAN", mit der ein schneller Scan der Tabelle durchgeführt wird. Dies zeigt dem Administrator, ob ein Index für die Abfrage benötigt wird. Anhand der Ergebnisse erkennt der Administrator, ob die Abfrage so ausgeführt werden kann, ob er einen Index erstellen oder suchen sollte oder ob die Durchführung eines vollständigen Tabellenscans effizient ist.