Avatar billede kak Nybegynder
31. juli 2008 - 14:52 Der er 9 kommentarer og
1 løsning

Optimering af en database

Jeg har en SQL Server 2005 med en database, der efterhånden er blevet ca. 200Mb. Jeg synes nogle gange, at applikationen der bruger databasen er noget langsom, og spekulerer derfor på, om der kan være noget at hente, ved at optimere databasen?

Er der nogle kørsler til at komprimere/optimere en database, og er der en chance for, at det vil hjælpe på hastigheden?`

Problemet er blot, at det er SQL Server 2005 Express Edition, så der er ikke noget Management Studio. Men det kan vel køres via kommando-parametre, så jeg kan lave en scheduled task?
Avatar billede keysersoze Guru
31. juli 2008 - 15:07 #1
Management Studio Express?
Avatar billede kak Nybegynder
31. juli 2008 - 15:20 #2
Ups, der var jeg vist for hurtig! :-) Der er selvfølgelig en Management Studio, men det er jo også en begrænset udgave, uden alle finesserne. F.eks. er der ikke en "shrink" eller "comtact" mulighed, som beskrevet her: http://msdn.microsoft.com/en-us/library/ms171916.aspx

Men kan det ikke gøres via commandline?

Og er det en god idé, i forhold til at optimere hastigheden?
Avatar billede 2c Nybegynder
31. juli 2008 - 15:20 #3
Ja, du kan godt bruge management studio expres. Det er gratis.
http://www.microsoft.com/downloads/details.aspx?FamilyId=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=en

En typisk optimerings mulighed, er at putte indekses på de kollonner der er i dine forespørgsler. Altså i dine where sætninger.
Avatar billede 2c Nybegynder
31. juli 2008 - 15:21 #4
Shrink krymper bare dine filer. Det hjælper ikke på performance.
Avatar billede 2c Nybegynder
31. juli 2008 - 15:24 #5
Altså, klik på +'et ud for tabellen. Så kommer der et felt frem der hedder indekses. Der kan du lave forskellige indekses.
Avatar billede 2c Nybegynder
31. juli 2008 - 15:24 #6
(Tror også man kan det i expres versionen)
Avatar billede kak Nybegynder
31. juli 2008 - 15:31 #7
Ok, det prøver jeg at kigge på. Kan du forklare lidt om, hvordan jeg bruger indekses? Jeg kan vel tilføjet et index, men hvordan bruger jeg det rent praktisk?

Og er der ikke noget ved selve databasen man kan optimere ved en eller anden kørsel?
Avatar billede 2c Nybegynder
31. juli 2008 - 15:58 #8
Når du har tilføjet et indeks bruger databasen det selv når der kommer forespørgsler.

Har du f.eks. et id i en tabel, og du laver en forespørgsel på ID'et ala where id between 1 and 500, så virker databasen på den måde, at hvis der ikke er et indeks, så kører den alle rækker i tabellen igennem, for at finde ud af om de har et id der ligger mellem 1 og 500.

Hvis du deriomod ar et indeks på id kollonnen, så holder databasen kollonen sorteret, og kan hurtigt finde de rigtige rækker.

Lid simpelt fortalt...

Vedr. indekses: Så er bliver insert og update langsommere, jo flere indekses der på en tabel. Men select bliver hurtigere.

Den måde indekses virker(som det tit bliver forklaret på)er som indekses i en bog, hvor du har de relevante informationer sorteret alfabetisk, og du hurtigt kan finde det du leder efter.
Avatar billede kak Nybegynder
31. juli 2008 - 16:01 #9
Super, tak for det. Opretter du et svar, så du kan få point?!
Avatar billede 2c Nybegynder
31. juli 2008 - 16:05 #10
Ok :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester