Vad är en fullbordsskanning?

En heltabellsgenomsökning är ett av de långsammaste, men mest grundliga, sätten att skanna en databas. 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 ett villkor som ställts av administratören. Den vanligaste utlösaren för en fullständig tabellsökning är att databasen inte innehåller en indexrad från vilken frågan kan startas. Det är vanligtvis bättre att skanna tabellen manuellt om du letar efter en rad, men om du letar efter fler eller om du tittar igenom en stor tabell kommer hela tabellskanningen att fungera bättre.

Databaser kommer med skanningsfunktioner som tittar igenom 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 tabellskanning är den mest grundliga skanningen eftersom, även om den hittar en rad som matchar villkoret, kommer den att fortsätta 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 genomsökning behövs när en fråga, eller funktion, utförs men databasen inte ser 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 registrera positionen för varje namn. Detta hjälper både administratören och databasen att hitta information gömd djupt i databasen. Om inget index finns i tabellen, startar vanligtvis en fullständig tabellsökning automatiskt för att en fråga ska kunna köras.

Så mycket minne är allokerat till en fullständig tabellskanning och den är så grundlig att en fullständig genomsökning är mycket långsam. Om administratören bara behöver en eller några rader för frågan går det oftast snabbare att bara bygga ett litet index. Även om detta är sant, om frågan är stor, kan den fullständiga skanningen faktiskt fungera snabbare. Om administratören gör en fråga som påverkar 5 procent eller mer av hela databasen, kommer en fullständig genomsökning vanligtvis att kunna utföra funktionen snabbare än att administratören gör samma sak manuellt.

En administratör använder ofta en ”EXPLAIN PLAN”-funktion, som gör en snabb genomsökning av tabellen. Detta kommer att visa administratören om ett index behövs för frågan. Genom att ta resultaten vet administratören 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 tabellsökning.