prestanda?
Jag har en databas, full med info...ja riktigt riktigtstor faktiskt. Jag har den i access men börjar ana att access kanske inte är den bas man bör använda av prestandaskäl (ska ligga som innehållsbas till min webb)
Vet någon här några prestandasiffror på access kontra mysql och sql-server? Kan man köra access med ett antal tusen poster (varav ngn kolumn med sträng 256 tecken)?
Svara
Sv: prestanda?
Ett antal tusen poster är inga problem för Access. Ifall du får 100000 poster så kan du börja fundera.
Se till att databasen är välbyggd. Ifall den inte är det så spelar det i stort sett ingen roll vilken databasmotor du använder.
Har du lagt index på lämpliga fält i tabellerna? Jag hjälpte en kille för ett tag sedan att trimma en databasfråga ifrån 45 sekunder till 0.01 sekunder, enbart genom att lägga ett index på rätt fält.
Svara
Sv: prestanda?
Hej Kalle,
det gäller att ha primära nycklar i sina tabeller, ett sådant fält får i Access med automatik ett index. Du kan kolla det genom att ta "Design View" på en tabell och sedan kolla Field Properties. Att ha primära nycklar med index ger ofta väldigt stora prestandavinster.
/Magnus
Svara
Sv:prestanda?
ehh..
jag har bara satt själva ID, typ räknare, som primär. Menar ni att jag skulle ha någon typ av komposit primärnyckel och göra ngn "indexgrej" med detta? Förståååår inte.
I access har jag satt alla fält som indexerade och inga dubletter tillåtna, trodde att det var grejen för att få det indexerat. Men, erkänner, begriper nog inte det här pratat om index.. någon som kan förklara?
Svara
Sv: prestanda?
Då har du gjort helt rätt, primärnyckel + index, ngt mer kan jag inte se att man kan göra. Jobbar egentligen bara med Oracle där man också definierar Foreign Keys, dvs relationer mellan tabeller och kan skapa mer index.
Vet ej om du kan göra detta i Access. Du kan ju i menyn välja Tools --> Relationships och där koppla ihop tabellerna grafiskt. Möjligt att detta skapar Foreign Keys under ytan.
Sedan hänger det ju också mycket på hur man formulerar sina SQL-frågor, finns mycket tid att spara ibland.
Har du prestandaproblem nu eller vill du bara säkra inför framtiden?
Sedan behöver man inte ha index på alla fält utan bara de som är unika eller används i ngn form av matchning i SQL-frågor. Har för mig att Index gör att Update och Insert blir långsammare men att Select blir snabbare. Nu talar jag återigen utifrån Oracle men samma borde rimligen gälla för Access, det är ju SQL i båda fallen.
/Magnus
Svara
Sv:prestanda?
det är väl för framtiden, nu ligger där väl runt 3000 poster, men de blir fler och fler. Men för varje post är det tänkbart att minst ett fält kan dra iväg över 200 tecken. Vet inte riktigt varför, men access har lite "skabb-känsla" för mig. Å andra sidan är det ju lämpligt att använda just access för mig iom dess enkelhet :-)
Svara
Sv: prestanda?
Se till att räknarna är nyckel i tabellerna, då får de automatiskt index.
Man kan även lägga index på vissa andra fält som används för att hitta poster eller för att sortera.
Exempel:
select grustag.skalpotatis, filantrop.grynkorv
from grustag
inner join filantrop on filantrop.kalops = grustag.kanin
order by grustag.kranvatten
Här ska du se till att fältet filantrop.kalops är indexerat, eftersom den letar upp posterna i tabellen på det fältet. Även fältet grustag.kranvatten ska vara indexerat för att snabba upp sorteringen.
Att sortera på indexerade fält är lite snabbare än oindexerade. Att leta upp poster på indexerade fält är ofantligt mycket snabbare än oindexerade.
Svara