På langt de fleste MS CRM-installationer jeg har analyseret, er der ikke en ordentlig optimering af MS CRM. Dette kan klares med en Maintenance Plan på SQL Serveren, og det er netop det dette indlæg handler om. Der er mange måder at optimere sit MS CRM-system på. Dette indlæg handler alene om at at lave og eksekvere en Maintenance Plan på SQL Server 2005, men teknikken er stort set den samme på SQL Server 2008.
Hvorfor have en Maintenance Plan?
En Maintenance Plan er en plan som kører på SQL Serveren, og den kan indeholde mange ting, såsom backup og optimering af databaser, indeks mv. Man bør have en Maintenance Plan kørende jævnligt, f.eks. en gang om ugen eller oftere.
Hvad bør en Maintenance Plan indeholde?
Set i forhold til MS CRM, bør en Maintenance Plan indeholde følgende:
- Backup af databaser
- Kontrol af databaseintegritet
- Formindskelse af database og logfiler
- Reorganisere indekser
- Gendannelse af indeks
- Oprydning
Hvordan laver man en Maintenance Plan?
Man kan benytte en guide, på SQL Server 2005/2008, til at oprette en Maintenance Plan, eller man kan oprette den manuelt.
Du starter guiden til planlægning af databasevedligeholdelse (Maintenance Plan) ved at udvide serveren, udvide mappen Management i SQL Server Management Studio, højreklikke på mappen Maintenance Plans og derefter klikke på Maintenance Plan Wizard.
Man opretter en manuel Maintenance Plan ved at vælge New Maintenance Plan.
Oprettelse af Maintenance Plan til MS CRM
Lad og kigge nærmere på en anbefalet Maintenance Plan alene til MS CRM.
Back Up Database (Full)
Backup af databaser er en selvfølgelighed. I forhold til MS CRM er følgende databaser vigtige af lave backup af:
- <Organisation>_MSCRM
- MSCRM_CONFIG
- ReportServer (kan have andet navn på SQL Server 2008)
- ReportServertempdb (kan have andet navn på SQL Server 2008)
- master
- msdb
Check Database Integrity
Check Database Integrity kontrollerer den strukturelle integritet af alle objekter i den angivne database. Kontrollen kan udføres på en enkelt database eller flere databaser, og du kan vælge om databasens indekser også skal kontrolleres.
Man bør, som minimum, inkludere følgende databaser i denne kontrol:
- <Organisation>_MSCRM
- master
Andre databaser, såsom msdb og MSCRM_CONFIG, ændrer sig ikke så ofte, og derfor er en kontrol ikke så vigtig - i hvert tilfælde ikke nødvendig daglig eller ugentlig, men eventuelt gerne månedlig.
Shrink Database
Hver fil i en database, kan reduceres ved at fjerne ubrugte sider (pages). En database består ofte af en datafil og en logfil. Med MS CRM vil især logfilen ofte blive ganske stor, og det kan påvirke ydelsen negativt.
Man bør, som minimum, inkludere følgende database i denne opgave:
Reorganize Index Task
Brug
Reorganize Index Task til at reorganisere indekser på tabellerne i databasen. En reorganisering af indekser er med til at forbedre ydelsen og optimere indeksene. Man bør, som minimum, inkludere følgende database i denne opgave:
Rebuild Index Task
Brug Rebuild Index Task til at genskabe indekser på tabellerne i databasen. Ved at genopbygge indekser kan man frigøre en del plads, som vil opstå når indeks kører og opdateres automatisk. Ved at frigøre denne plads optimeres indeksene.
Man bør, som minimum, inkludere følgende database i denne opgave:
Maintenance Cleanup Task
Brug Maintenance Cleanup Task til at rydde op i backupfiler så disse ikke bliver lagret flere gange i en uendelighed. Ofte vil man medtage samme databaser, som der er taget backup af, altså databaserne angivet i Back Up Database Task'en.
I de fleste tilfælde indstiller man databasens
Recovery Model til
Simple samt
Auto Shrink til
True. Hvis dette ikke gøres, er det ikke sikkert at databasen kan formindskes. Vær dog opmærksom på at
Simple giver en mindre sikkerhed i forhold til reetablering af data fra transaktionsloggen. Læs evt.:
Recovery Model Overview (Engelsk)...
Kørsel af Maintenance Plan'en
Man afgør selv hvor ofte man vil køre en Maintenance Plan, men jeg kan anbefale, at optimering af indeks og formindskelse af databasen gennemføres ugentlig.