Antwort

1

In Multicore-Prozessoren und modernen Architekturen ist es nicht einfach mit einer Definition von 'verbrauchten' CPU-Zyklen zu kommen, die mit einem Zeitintervall in Ihrem Programm konsumiert/verstrichen sind (Ich frage SQL-Prozedur/Abfrage nach Ihren Tags) in den alten vor-superskalaren Architekturen.

Ich empfehle Ihnen, andere Metriken, Verfahren oder spezielle Tools zum Messen Ihrer Leistung zu finden. Ich bin kein Benutzer von SQL Server, aber alle professionellen DBMS-Systeme bieten Profiling-Tools zur Optimierung der DB/Anwendungsleistung.

Lesen Sie diesen Beitrag und die Benutzerkommentare, es ist im Zusammenhang mit der Funktion QueryPerformanceCounter von Windows für die Annäherung an eine Art von 'Zyklen' Buchhaltung. Die Diskussion beleuchtet, warum Ihr zyklusbasierter Ansatz aus meiner Sicht nicht korrekt ist.

https://blogs.msdn.microsoft.com/oldnewthing/20080908-00/?p=20963/

+0

das ist etwas, das ich wie suchen, wenn ich x Prozedur mit count = abc und seine avgcpu haben = y mein TotalAvgCPU = abc * y dann die in Mikrosekunden, so wie wir diese TotalAvgCPU umwandeln sollte Wert in CPU-Begriffe wie MHz, GHz usw.? –

+0

MHz/GHz sind keine echten Maße der CPU-Leistung unter Wintel seit dem Pentium-Prozessor, der superskalare Funktionen (parallele Hardware-Ausführung von Anweisungen) eingeführt hat. Was möchten Sie messen? In welchem ​​Kontext? Vielleicht brauchen Sie eine genauere Messung mit Dingen wie "Instrumentierung" oder Profilierung von Produkten. https://en.wikipedia.org/wiki/List_of_performance_analysis_tools –

+0

Verwenden Sie für SQL Server insbesondere das SQLProfile-Tool. Wie ich sehe, kann es Dauer, CPU-Auslastung%, Threading-Probleme, etc. https://support.microsoft.com/en-us/kb/224587 messen –

Verwandte Themen