Avatar billede puppetmaster Nybegynder
15. december 2003 - 08:42 Der er 7 kommentarer og
2 løsninger

Tage tid på forespørgsel

Er det muligt at se hvor længe en forespørgsel har været om at afvikle? f.eks. inde i MMC.
Avatar billede arne_v Ekspert
15. december 2003 - 08:48 #1
Query Analyser vise exec time nede i bunden.
Avatar billede trer Nybegynder
15. december 2003 - 08:49 #2
Ja.

Du kan gøre det på lidt forskellige måder.  Den simpleste er at afvikle din query i Query Analyzer - den skriver tiden i sekunder.

Ellers, så start en profiler trace - sæt filter op til kun at ramme den ene database du er interesseret i, tilføj t-sql statement events til profileren og lad tracen køre mens querien afvikles.  Så vil du få tiden.

En sidste mulighed er, at du kigger lidt på Syscacheobjects - der kan du også finde information om belastningen en enkelt query giver.

QA kan også give det - den har nogle options du kan slå til under fanen Query
Avatar billede netpxg Nybegynder
15. december 2003 - 08:50 #3
Prøv performance monitor
Avatar billede puppetmaster Nybegynder
15. december 2003 - 09:00 #4
Jeg tænkte også på performance monitor....men hvis query analyser kan gøre det....
Avatar billede trer Nybegynder
15. december 2003 - 09:08 #5
Performance monitor giver ikke nær samme information som de indbyggede værktøjer - de counters der er tilstede er ikke detaljerede nok. Det bedste værktøj er profileren - men den er ikke nem at bruge.

Query Analyzer er ret simpel - du slår "Show Execution plan" til (fortæller hvad sql server laver på din query, hvor belastningen i den er etc), du slår Server Trace til (fortæller om hvad sql server bruger tid på) og Client statistics.
Avatar billede bleze Nybegynder
15. december 2003 - 09:19 #6
Profileren giver meget bedre overblik end Query Analyser som kan svinge helt vildt. Derudover viser den i msec og viser også reads og writes....
Avatar billede trer Nybegynder
15. december 2003 - 09:23 #7
bleze> Server Trace i Query Analyzer giver også de informationer, man skal blot ikke løbe an på sekunderne i statusbaren - men generelt er Profileren det bedste værktøj.
Avatar billede puppetmaster Nybegynder
15. december 2003 - 09:27 #8
Hmmm...når jeg kører forespørgslerne på denne side, får jeg RET ENS resultater http://www.sql-server-performance.com/nb_speed_select.asp
i fanen Messages i SQL Query Analyzer (kører forespørgslen 3-4 gange og aflæser så)
Avatar billede trer Nybegynder
15. december 2003 - 09:34 #9
Forklaringen er, at Query Optimzeren i SQL Server 2000 er væsentligt bedre end i SQL Server 7.

bl.a. kan den ofte rewrite IN (SELECT ...) statements så de er lige så effektive som EXISTS(SELECT ...) og den kan håndtere overgange fra VARCHAR til NVARCHAR (i 7'eren ville en join mellem en varchar paramenter og en nvarchar gøre, at indeks blev ubrugelige).

Men kigger du i SysCacheObjects så kan du der se cost for en query samt om den skal rekompileres ved hver kørsel.
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