Benutzer mit den meisten Antworten
Einheiten für SqlClient.Connection "RetrieveStatistics"

Frage
-
Hallo Sql-Profis
Ich nutze zu Trace Zwecken die Statistik-Optionen der SqlConnection um herauszufinden wie meine Datenzugriffe sich auf die Performance auswirkt. In der "ICollection" sind die Werte alle als "Long"-Werte deklariert. Es würde mich interessieren welche Einheiten die Zeitlichen Parameter haben, ob es "Ticks" oder "Millisekunden" sind. Ich habe diesbezüglich bei Google oder MSDN nichts gefunden. Interessieren würden mich folgende Werte "NetworkServerTime", "ConnectionTime", "ExecuteTime".
Und als zweites würde mich interessieren wo man beim SQL-Server die "Transaktionen" als Protokoll einsehen kann.
Gruß Thomas
Antworten
-
Hallo Thomas,
intern wird GetSystemTimeAsFileTime Function, wobei die 100ns Sekunden Genauigkeit theoretisch ist: File Times
Messungen sind dort eher für größere Anweisungsabschnitte sinnvoll,
siehe auch SYSK 257: .NET way to analyze SQL data I/O performanceUm die Geschwindigkeit für Anweisungen können oft im SSMS (als Ausführungsplan) oder im SQL Profiler gemessen werden.
Wartezeiten und mehr kann man häufig besser über die Serverseite erkennen, da sich dort die einzelnen Verbindungen treffen:
Optimizing SQL Server CPU Performance
und auch Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL)für Wartezeiten interessant: SQL Server sys.dm_os_wait_stats DMV Queries
(Weitere Beispiele zu den Einsatzmöglichkeiten der dynamischen Sichten liefert Bing/Google reichlich)Die Transaktionsdatei kannst Du mit dem undokumentierten DBCC LOG angucken,
siehe http://www.insidesql.org/blogs/frankkalis/2004/07/13/log-datei-auslesen
http://www.mssqlcity.com/Articles/KnowHow/ViewLog.htmAchtung die Ausgabe kann schnell sehr umfangreich werden - besser nicht auf Produktionsservern ausprobieren.
Gruß Elmar
- Als Antwort markiert tommytom73 Montag, 1. August 2011 12:19
Alle Antworten
-
Hallo Thomas,
intern wird GetSystemTimeAsFileTime Function, wobei die 100ns Sekunden Genauigkeit theoretisch ist: File Times
Messungen sind dort eher für größere Anweisungsabschnitte sinnvoll,
siehe auch SYSK 257: .NET way to analyze SQL data I/O performanceUm die Geschwindigkeit für Anweisungen können oft im SSMS (als Ausführungsplan) oder im SQL Profiler gemessen werden.
Wartezeiten und mehr kann man häufig besser über die Serverseite erkennen, da sich dort die einzelnen Verbindungen treffen:
Optimizing SQL Server CPU Performance
und auch Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL)für Wartezeiten interessant: SQL Server sys.dm_os_wait_stats DMV Queries
(Weitere Beispiele zu den Einsatzmöglichkeiten der dynamischen Sichten liefert Bing/Google reichlich)Die Transaktionsdatei kannst Du mit dem undokumentierten DBCC LOG angucken,
siehe http://www.insidesql.org/blogs/frankkalis/2004/07/13/log-datei-auslesen
http://www.mssqlcity.com/Articles/KnowHow/ViewLog.htmAchtung die Ausgabe kann schnell sehr umfangreich werden - besser nicht auf Produktionsservern ausprobieren.
Gruß Elmar
- Als Antwort markiert tommytom73 Montag, 1. August 2011 12:19