sql >> Database teknologi >  >> Database Tools >> SSMS

Forespørgselsudførelsestid i Management Studio &profiler. Hvad måler det?

Hvis jeg forstår dit spørgsmål korrekt, sætter du først spørgsmålstegn ved forskellen mellem varigheden rapporteret af Profiler og statistikken præsenteret i SSMS (enten i nederste højre hjørne for generel tid og/eller ved INDSTIL STATISTIK TID TIL). Derudover er du tilsyneladende ikke overbevist om produktions-DBA's kommentar om, at visningen eksekveres i den forventede varighed på ~60 sekunder.

For det første fra Books Online, den statik, som SSMS ville rapportere tilbage via SET STATISTICS TIME ON:

"Viser antallet af millisekunder, der kræves for at parse, kompilere og udføre hver sætning."

Du er perfekt til dette. Hvad angår Varighed i Profiler, beskrives det som:

"Varigheden (i mikrosekunder) af begivenheden."

Fra hvor jeg sidder, burde disse to være funktionelt ækvivalente (og, som jeg er sikker på du har bemærket, vil Profiler rapportere om mikrosekunder, hvis du går imod SQL 2005 eller senere). Jeg siger dette, fordi "begivenheden" i dette tilfælde (vedrørende Duration in Profiler) er udførelsen af ​​valget, som inkluderer levering til klienten; dette er konsekvent i begge tilfælde.

Det lader til, at du har mistanke om, at geografi er skyld i den lange varighed, når du udfører forespørgslen eksternt. Dette kan meget vel være. Du kan teste for dette ved at udføre markeringen på visningen i ét forespørgselsvindue og derefter afføde et andet forespørgselsvindue og gennemgå ventetypen på forespørgslen:

select
    a.session_id
    ,a.start_time
    ,a.status
    ,a.command
    ,db_name(a.database_id) as database_name
    ,a.blocking_session_id
    ,a.wait_type
    ,a.wait_time
    ,a.cpu_time
    ,a.total_elapsed_time
    ,b.text
from sys.dm_exec_requests a
    cross apply sys.dm_exec_sql_text(a.sql_handle) b
where a.session_id != @@spid;

Jeg vil formoder, at du vil se noget som ASYNC_NETWORK_IO som ventetypen, hvis geografi er problemet - ellers skal du tjekke, hvad der kommer ud af dette. Hvis du profilerer forespørgslen for din fjernudførelse, vil varigheden afspejle den tidsstatistikker, du ser i SSMS. MEN, hvis du bruger Profiler og finder ud af, at varigheden af ​​denne forespørgsel når den udføres fra en af ​​webserverne der sidder i samme datacenter som SQL Serveren stadig tager 7 minutter, så er DBA en stor, fed løgner :). Jeg ville bruge Profiler til at registrere forespørgsler, der tager længere end 1 minut, prøve at filtrere efter din visning og tage gennemsnittet for at se, om du er i mål med hensyn til ydeevne.

Fordi der ikke er postet andre svar, er jeg bekymret over, at jeg er langt væk fra base her - men det er sent, og jeg er ny i dette, så jeg tænkte, at jeg ville prøve det!



  1. Sådan indstilles brugernavn og adgangskode til phpmyadmin

  2. Tilføj unik begrænsning i SQL Server 2008 GUI?

  3. xampp phpmyadmin, Forkert formatparameter

  4. Generere SQL server scripts fra kommandolinjen?