23. oktober 2002 - 01:56Der er
14 kommentarer og 2 løsninger
Det tager laaaang tid
Hej med jer alle sammen....
Alt foelgende er lavet i SQL query analyzer...
Jeg har en tabel(derivatives) hvori der er 250000 raekker. Der er 3 kolonner deri, clientID, derivative_code og expertsys_code. Alle clientID's vaerdier er pt vaerdien 4. Der er ca 20 forskellige vaerdier af derivative_code, og der er ca. 2000 forskellige vaerdier af expertsys_code.
Nu vil jeg gerne uddrive alle de forskellige expertsys_code hvor derivative_code starter med f.eks. 'FO'. Det har jeg gjort ved:
SELECT distinct expertsys_code FROM derivatives WHERE SUBSTRING(derivative_code,1,2) = 'FO'
Problemet er nu at dette udtraek tager lidt over et sekund. Er det normalt? Tager jeg f.eks. og skriver:
SELECT expertsys_code from derivatives
tager det over 3 sekunder!!!!
Er det virkelig meningen at det skal tage saa lang tid? Er der nogen der kan sige mig hvorfor. Jeg har umiddelbart lavet et primary index paa de 3 kolonner, og samtidig har jeg lavet enkeltvis index paa kolonnerne hver isaer.
Please help, da jeg virkelig ikke kan se hvad jeg goer galt.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Derudover skulle der ikke være noget galt. Er Serveren belastet af andre kørende processer? Har SQL Server problemer med at få RAM i forhold til andre processer på selve computeren?
Ja, jeg troede faktisk at LIKE operatoren var langsommeren, men det er faktisk den jeg bruger. For simpelthedens skyld, skrev jeg bare = istedet. Men det er stadig lige langsomt.
Hvordan kan jeg checke om den er overbelastet??? Ikke at jeg tror den er det, men der er faktisk baade FTP- og WWW server paa den ogsaa. Der er dog ingen brugere paa disse idet jeg leger med SQL serveren.
Hvad kan man goere for at optimere dette? Jeg mener soegemaskiner er sindsyge hurtige, men det er sikkert ogsaa en anden teknologi. Kan man evt. saette flere maskiner sammen til at soege paa efter resultatet( cluster hedder det vist ) eller hvad goer man i denne situation?
Jeg vil proeve at kigge paa det, men lige inden du svarede dette, kiggede jeg selv. Den laa paa de 150mb, men det var ved state=IDLE (ingen af serverne arbejdene). Kigger lige lidt mere paa det.
undskyld jeg ikke lige har svaret, men har haft noget andet paa hjertet. Nu er jeg dog tilbage og vil gerne lige have loest dette. Hvordan kigger jeg paa "server trace"? Jeg ved ikke helt praecist hvad det er...
Jeg har haft samme problem. Det viste sig bare at være et netværks problem.
Jeg lavede en tun forspørgsel fra en query analyser over nettet til en server. Det to 28 sekunder.
Da jeg havde prøvet at kode om osv, så kom jeg til at tænke på om det måske var fordi Query Analyseren lavede al arbejdet, dvs. at sortere, joine osv, og så prøvede jeg at køre den samme forspørgsel på serveren, og der tog det under 1 sekund.
Måske skal du prøve det samme, med mindre at du rent fakstisk sidder og koder på serveren, så skal du bare ignorere mit indlæg.
ok... jeg har ikke forbedret det, men laert at leve med det... anyway, takker for svarene
Synes godt om
Ny brugerNybegynder
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.