Avatar billede dargny Nybegynder
29. marts 2004 - 09:21 Der er 4 kommentarer og
1 løsning

Time sharing på SQL 2000

Det sker tit at jeg har en bruger der sender et SQL statement afsted som ligger serveren ned. Når jeg som administrator logger på går det utroligt langsom, og alle andre brugere komme ikke på. Hvad har man af muligheder for at dele CPU tiden?
Avatar billede bennytordrup Nybegynder
29. marts 2004 - 09:42 #1
Ekstra CPU?
Avatar billede dargny Nybegynder
29. marts 2004 - 09:47 #2
Den kører dual CPU, men den tildeler 100% CPU til den process der kvæler serveren.
Avatar billede trer Nybegynder
29. marts 2004 - 09:56 #3
Problemet har flere årsager - kort ridset op:
1 Der er for dårlig indeks-understøttelse af det pågældende sql statement.
2 Manglende hukommelse
3 Parallel Query option slået til.
4 Manglende optimering af SQL'en
5 Autoshrink / Autoclose på databaser

(Ovenstående er ikke en prioriteret liste)

Først - check at der er indeks kolonnerne i samtlige join-betingelser og where betingelser i SQL'en.  Er der ikke det, så få dem lagt på.

Dernæst - er det samme SQL der sendes hver gang?  Så lav det enten om til et view eller en stored procedure - og sørg for, at prefixe samtlige tabeller med ejer.

Og hvis det er samme SQL - så sørg for at den er optimeret; Jeg har skrevet et par artikler om Basal Performance tuning i artikelsektionen. 90% af alle forbedringer hentes ved at rette SQL'en til...

CPU forbrug kan blive højt pga swap til disk (manglende ram) og/eller udvidelse af databaser. Har du autoshrink / autoclose på de involverede databaser - så slå det fra. Check via performance monitor om du mangler ram.

Parallel Query er kun aktuelt på et fler cpu system. Det tillader at en kompleks query bliver spredt ud over flere CPU'er - uheldigvis sker der nogen gange det, at querien (SQL'en) ender med at blive flere gange så tung - al CPU tiden går med administration af hvilke bidder af SQL den enkelte CPU skal køre.  Ofte giver det et boost / løser problemer hvis man slår det fra (via Properties dialogen på serveren i Enterprise Manager).
Avatar billede dargny Nybegynder
29. marts 2004 - 10:22 #4
Sagen er den at vi har ladet nogle "superbrugere" lave deres egne SQL. Jeg ved godt at det er farligt, men det har været nødvendigt i en periode. Når sådan en bruger sender et SQL afsted som ligger serveren ned, så er det svært at komme på som Admin. Alle andre SQL kald får heller ikke en chance. Findes der en round robin eller andre måder at dele CPU tid.
Avatar billede trer Nybegynder
29. marts 2004 - 10:31 #5
Nixen - det klarer SQL Server 100% selv...

Men i næste version er der en mulighed for at komme på som administrator selvom serveren er blokeret (hvad der ikke hjælper dig nu).

Men at du ikke kan komme på som admin lugter meget af swap eller udvidelse af databasefiler.
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