none
SSMS: XE Profiler - Wie passen den diese cpu_time und Duration Werte zusammen? RRS feed

  • Frage

  • Hallo Zusammen,

    nach dem Start des XE Profiler (Standard Profil) im SSMS 17.3 ist mir folgendes rätselhaft:

    Nach meinem Verständnis müsste doch die Duration immer höher (oder zumindest gleich) der cpu_time sein? Kann das jemand erklären?

    Besten Dank und liebe Grüße

    Volker

    -> Umgebung: SQL Server 2016 SP1 (Datacenter)  / SSMS 17.3

    XE Profiler

    Dienstag, 17. Oktober 2017 15:06

Antworten

  • Hallo Volker,

    die CPU Zeit bezieht sich auf alle involvierten CPU's, wenn die Abfrage also parallel ausgeführt wird und dabei 4 CPU's verwendet, dann bezieht sich die Zeit auf alle 4.

    Mirkosekunden halte ich für einen Doku Fehler. Alleine das Windows OS kann schon gar nicht so eine Genauigkeit hergeben; das werden auch Millisekunden sein.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 18. Oktober 2017 05:44

Alle Antworten

  • Hallo Volker,

    die CPU Zeit bezieht sich auf alle involvierten CPU's, wenn die Abfrage also parallel ausgeführt wird und dabei 4 CPU's verwendet, dann bezieht sich die Zeit auf alle 4.

    Mirkosekunden halte ich für einen Doku Fehler. Alleine das Windows OS kann schon gar nicht so eine Genauigkeit hergeben; das werden auch Millisekunden sein.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 18. Oktober 2017 05:44
  • Hallo Olaf,

    Besten Dank für deine Antwort - das klingt natürlich logisch (unter der Vorgabe, dass MS hier tatsächlich Mikrosekunden ausgibt (und zwar in beiden Spalten) - sonst passt das nicht zusammen)

    Ich habe testweise den XE Profiler und den "alten" parallel laufen lassen - hier ein Beispiel (Spalte Duration - rot markiert):

     

    Volker

    Mittwoch, 18. Oktober 2017 07:06
  • ...

    Besten Dank für deine Antwort - das klingt natürlich logisch (unter der Vorgabe, dass MS hier tatsächlich Mikrosekunden ausgibt (und zwar in beiden Spalten) - sonst passt das nicht zusammen)

    ...

    Ja, viele Extended Events werden in Mikrosekunden gemessen. Darunter sind auch viele eigentlich sehr bekannte, wie sp/sql_statement_completed. Das die (interne) Doku nicht immer hilfreich ist, ist leider auch wahr.

    Übrigens geben auch viele DMVs wie zB die sys.dm_exec_query_stats, die sicher die meisten kennen, μs wieder. Daher verstehe ich nicht ganz die Überraschung.

    Selbst das längst ausgediente SQL Trace mit dem Profiler haben Microsekunden gespeichert. Profiler hat diese jedoch meist (immer?) direkt in Millisekunden dargestellt.

    Das die praktische Genauigkeit nicht gleich der theoretischen ist, steht auf einem anderen Blatt. ;-)


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform MCSE Data Platform
    MCSM Charter Member, MCITP Charter Member etc.
    www.SarpedonQualityLab.com
    (Founder)

    Donnerstag, 19. Oktober 2017 17:19