Access har en mycket snabb och effektiv databasmotor bakom det , vilket möjliggör snabb hämtning av komplexa frågor . Trots detta kan förfrågningar göras för att springa mycket snabbare med hjälp av några tips för att skapa en mer effektiv sökning . De flesta delar av en Access SQL " Select " uttalande kan sättas i valfri ordning , men ordningen kan göra en skillnad i fråga hastighet . Hur informationen byggs och underhålls kan också hjälpa . Instruktioner
1
Inkludera endast de fält som du behöver för att få önskat resultat . Även om det är lättare att skriva " SELECT * FROM tabell , " det är en mycket mer effektiv fråga att skriva " Välj Förnamn, Efternamn , Adress från tabell " om det är alla de data du behöver .
2
Inkludera indexerade fält och sätta dem i början av den där klausulen i en fråga . Följande två frågor kommer att ge samma resultat , men den andra kommer att köras mycket snabbare om OrderDate är ett indexerat fält .
" Select OrderDescription , belopp från order där CustName = ' Smith ' och OrderDate > = ' # 1/1/2010 ' "
" Select OrderDescription , belopp från order där OrderDate > = ' # 1/1/2010 ' och CustName = ' Smith ' " Addera 3
Undvik inklusive " Order by " eller komplicerade " grupp av " klausuler om du bara räkna med att returnera några poster. Om du behöver dem , använd " Order by " och " Group by " med indexerade fält där det är möjligt . Om du kommer att bygga liknande frågor ofta , index dessa fält för beställningen och gruppera efter .
4
Undvik att använda " Gilla " som en genväg . Bygga en fråga med en liknande klausul och ett wildcard är praktisk när du inte vet hela strängen som efterfrågas , t.ex. " SELECT * FROM tabell där Efternamn LIKE ' Abercrom * ' . " Men använd inte det bara för att det är lättare än att skriva ut hela strängen . Detta kommer att kraftigt bromsa en fråga .
5
Run liknande frågor back - to-back när det är möjligt . Om du kommer att vara igång andra frågor snart , göra dem samtidigt . En fråga bygger en tillgång sökväg till data som en del av frågan processen . En andra fråga till samma bord som vanligtvis kör fortare än den första.