Avatar billede jmp.dk Nybegynder
19. februar 2013 - 17:35 Der er 6 kommentarer

Performance problemer

Jeg har lavet et databasesystem til en kunde med en MS SQLSERVER 2000 backend. Systemet har kørt upåklageligt i 6 år, men nu er der kommet flere brugere på (1200 samtidige brugere).
Database serveren er en Xeon dual core 3.6 GHz med 4 GB Ram.
Databasen er på 74GB, med største tabel (kalenderen) med 3-4 millioner rækker.
Det virker også som om det er den tabel med størst performance problemer. Nogle gange tager det 6-7 sekunder at opdatere en række.
Denne tabel bruges hele tiden af alle brugere.

1) Er hardwaren god nok til at køre en database

2) Vi har planlagt en upgrade til sql server 2008 i slutningen af Marts. Vil det give nogle performance forbedringer?

3) Er der nogle tiltag jeg kan gøre ind til da?
Kører update statistics jævnligt.
Avatar billede arne_v Ekspert
19. februar 2013 - 17:50 #1
re 1)

4 GB RAM er ikke meget til 1200 brugere.

re 2)

Realistisk set kraever ny version nok mere hardware.

re 3)

For opdaterings performance kan du jo kigge lidt paa transaction isolation level og lock policies.

Hvis du ved lidt index optimering kan forbedre queries kan der maaske ogsaa blive mere power tilovers til opdatering.
Avatar billede keysersoze Guru
19. februar 2013 - 18:08 #2
Benyt Profileren til at se hvor det går langsomt - måske er det noget så simpelt som manglende/forældet index eller statistics.
Avatar billede thiesens Nybegynder
19. februar 2013 - 20:09 #3
Kan ikke læse i dit indlæg om hvad der bliver gjort af maintenance, andet en update statistics.

Sørger du for regelmæssigt at opdatere/genoprette dine indexes?

Jeg har flere gange været ude for at skulle slette kolonne-statistikker, for at få performance "tilbage".

Ang vedligeholdelse af Index har jeg mange gange brugt en løsning fra Ola Hallengreen. læs her http://ola.hallengren.com.
Avatar billede Slettet bruger
20. februar 2013 - 05:29 #4
Jeg ville staret med at se på koden. fra systemet og måde i laver jeres kald til databasen og om der var noget i kunne ændre her.
Derudover se på keys i databasen.
Avatar billede Syska Mester
23. februar 2013 - 16:54 #5
Hvorfor opdatere til SQL 2008 når 2012 er på gaden? Det virker helt forkert.

1200 samtidige ... hvis de kun laver 1 req per mins, er det jo stadig ikke specielt mange.

Lader til du har index problemer. Hardware løser ikke performance problemer hvis dit design er forkert.

SQL er glad for RAM ... MEGET GLAD. 4 GB koster jo nada i dag. Har selv 16GB i min desktop, så at se en server med sølle 4GB er ... trist, men der kan jo være grunde.

Smed SQL Profiler på ... og se på "hvorfor" det er langsomt. Vi kan komme med mange gæt, men performance kan være virkelig simple ting.
Reorganize and Rebuild Indexes
Husk, Reorganize dine indexes pga fragmentering og andre ting en gang om dagen, nok om natten her. Hver søndag kan du så lave en rebuild. Alt efter hvad version af SQL du har, kan du gøre det online. Vist kun Enterprise der kan gøre det online.

mvh
Avatar billede gorgemuld Nybegynder
26. februar 2013 - 13:12 #6
At den har kørt ok, og nu ikke længere gør det, tyder på at Buzzzz har ret. Din database er ikke blevet vedligeholdt og du har brug for at få defragmenteret dine index.

Samtidig vil jeg lige nævne (er nævnt tidligere) at opgradere til 2008 eller 2008R2 når 2012 er på markedet er lidt skørt..
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