Wednesday, June 13, 2007

Optimering utav SQL Server. Filgrupper

I en databasmiljö där man har mycket stora databaser finns en möjlighet att optimera SQLServern med Filgrupper. En databas består i grunden utav en Primary filgrupp där själva databasfilen ligger. Sen finns det en för transactionsloggen. Denna fil kan vi inte göra något med då loggfilen bara kan ha en filgrupp. Däremot kan databasfilen placeras i flera filgrupper. Varje filgrupp kan sedan ha flera filer under sig. Här kan man vinna en del performance genom att placera tabeller och index i olika filgrupper och sedan filerna på olika diskar. Nedan följer några tips att tänka på.

Tabeller som ofta JOINAS i en query skall inte ligga i samma filgrupp.

Om du har en tabell i databasen som du vet används mycket så överväg att placera den i en egen filgrupp på en egen disk. Då kan man dra nytta utav SQL-s förmåga att läsa datat sekventiellt vilket är mycket snabbare än vanlig läsning.

En tabell som används väldigt mycket kan dra nytta utav att placeras i flera filgrupper då datat kan läsas från fler ställen samtidigt. Kan man dessutom placera dessa filgruppers filer på egna diskar så skulle performancen bli ännu bättre.

På mycket stora databaser är backuper knappt hanterbara om man inte delar upp databasen i flera filgrupper.

Icke clustradeIndexen till en tabell kan läggas i en egen filgrupp.

Tempdb databasen som sköter alla sortering mm i SQL servern är lämplig att lägga i flera filgrupper för att då öka performancen.