Vad är en fullbordsscanning?
En fullständig tabellscanning är ett av de långsammaste, men mest grundliga sätten att skanna en databas på. Anledningen till att denna skanningsmetod är så långsam är att databasen läser varje rad och kontrollerar om en eller flera kolumner är giltiga för en fråga eller villkor som ställts av administratören. Den vanligaste utlösaren för en fullständig tabellscanning är att databasen inte innehåller en indexrad som frågan kan startas från. Det är vanligtvis bättre att skanna tabellen manuellt om du letar efter en rad, men om du letar efter mer eller om du tittar igenom ett stort bord kommer hela tabellskanningen att fungera bättre.
Databaser har skanningsfunktioner som tittar genom tabeller för att hitta information eller för att kontrollera tabellen för att säkerställa att den kan uppfylla ett villkor. En fullständig tabellscanning är den mest grundliga genomsökningen eftersom den, även om den hittar en rad som matchar villkoret, fortsätter att skanna genom resten av raderna. Denna funktion är dyr, vilket innebär att den använder en stor mängd minne, eftersom skanningen läser och skriver till varje rad och även utför flera sökningar för att noggrant kontrollera raden. En fullständig skanning behövs när en fråga eller funktion utförs men databasen ser inte ett index för att köra frågan.
Ett index är en kolumn i en tabell som indexerar information om tabellen enligt administratörens önskemål. Till exempel, om administratören vill indexera information om namn, kommer indexkolumnen att spela in positionen för varje namn. Detta hjälper både administratören och databasen att hitta information dold i databasen. Om inget index finns i tabellen startar vanligtvis en fullständig tabellscanning automatiskt så att en fråga kan köras.
Så mycket minne tilldelas en fullbordsscanning och det är så noggrant att en fullständig skanning går mycket långsamt. Om administratören bara behöver en eller några rader för frågan är det vanligtvis snabbare bara att bygga ett litet index. Även om detta är sant, om frågan är stor, kan hela skanningen faktiskt fungera snabbare. Om administratören gör en fråga som påverkar 5 procent eller mer av hela databasen, kan en full skanning vanligtvis utföra funktionen snabbare än administratören som gör samma sak manuellt.
En administratör kommer ofta att använda en ”EXPLAIN PLAN” -funktion, som gör en snabb skanning av tabellen. Detta visar administratören om ett index behövs för frågan. Genom att ta resultaten kommer administratören att veta om frågan kan köras som den är, om han eller hon ska göra eller söka efter ett index, eller om det är effektivt att utföra en fullständig tabellscanning.