Profilowanie wydajności sterownika ODBC
The SQL Server Native klient ODBC driver can profile two types of performance data:
Długo wykonujące kwerendy.
Sterownik można zapisać pliku dziennika dowolny typ kwerendy, która nie otrzymuje odpowiedzi z serwera w określonym czasie.Programistom i administratorom bazy danych mogą być następnie badania każdego rejestrowane instrukcję SQL, aby określić, jak można poprawić jego wydajność.
Dane wydajności sterownika.
Sterownik można rejestrować statystyki wydajności i albo zapisać do pliku lub udostępnić je do aplikacji za pośrednictwem struktury danych specyficznych dla sterownika, o nazwie SQLPERF.Plik zawierający statystyki wydajności jest pliku rozdzielanego znakami tabulacji, który można łatwo analizować z dowolnego arkusza kalkulacyjnego, które obsługują pliki znaki tabulacji, takich jak program Microsoft Excel.
Profilowanie dowolnego typu mogą być włączane przez:
Podłączanie do urządzenie źródłowe danych, które określa rejestrowanie.
Wywołanie SQLSetConnectAttr ustawić atrybutów specyficznych dla sterownika profilowania formantu.
Każdy proces aplikacji pobiera własną kopię SQL Server Macierzysty sterownik ODBC klient i Profilowanie jest globalny kombinacji kopią sterownika i procesem aplikacji. Gdy wszystko, co w aplikacji włącza profilowania, profilowania rejestruje informacje dla wszystkich połączeń aktywnych w sterowniku z tej aplikacji.Włącza się nawet połączeń, które nie specjalnie zadzwonić do profilowania.
Po otwarciu dziennika profilowania (dane dotyczące wydajności lub długo działającą kwerendę dziennika) sterownika nie zamyka dziennik, dopóki sterownik jest zwalniane przez menedżera sterownika ODBC, gdy wszystkie dojścia środowiska on otwarty w sterowniku zwalnia aplikację.Jeśli aplikacja zostanie otwarte dojścia do nowego środowiska, nowa kopia sterownik jest ładowany.Jeśli aplikacja następnie albo łączy się ze źródłem danych, które określa, w tym samym pliku dziennika lub ustawia atrybuty specyficzne dla sterownika, aby zalogować się do tego samego pliku, sterownik zastępuje stary dziennik.
Jeśli uruchamiania aplikacji profilowania w pliku dziennika, a druga aplikacja podejmowana jest próba uruchomienia profilowania do tego samego pliku dziennika, druga aplikacja nie będzie mógł rejestrować żadnych danych profilowania.Jeśli druga aplikacja jest uruchamiana profilowania po pierwszej aplikacji zostało zwolnione jego sterownik, druga aplikacja zastąpi plik dziennika z pierwszej aplikacji.
Jeśli aplikacja łączy się ze źródłem danych, zawierający profilowania włączony, sterownik zwraca SQL_ERROR, jeśli aplikacja wywoła SQLSetConnectOption , aby rozpocząć rejestrowanie.Wywołanie SQLGetDiagRec zwraca następujące:
SQLState: 01000, pfNative = 0
ErrorMsg: [Microsoft][SQL Server Native Client]
An error has occurred during the attempt to access
the log file, logging disabled.
Sterownik powoduje zatrzymanie zbierania danych dotyczących wydajności, po zamknięciu dojście do środowiska.Jeśli SQL Server Aplikacja klient macierzysty ma wiele połączeń, każdy z uchwytu środowiska, a następnie sterownik zatrzyma zbierania danych dotyczących wydajności, gdy dowolny z uchwytów skojarzone środowiska zostaną zamknięte.
Dane wydajności sterownika mogą być przechowywane w strukturze danych SQLPERF albo rejestrowane w pliku rozdzielanym tabulatorami.Dane zawiera następujące kategorie statystyk:
Stosowanie profilu
Połączenia
Sieci
Godzina
W poniższej tabela opisy pól w strukturze danych SQLPERF mają również zastosowanie do statystyk, rejestrowane w pliku dziennika wydajności.
Pole SQLPERF |
Description |
---|---|
TimerResolution |
Minimalna rozdzielczość czas zegara z serwerem (w milisekundach).To jest zazwyczaj raportowane jako 0 (zero) i należy traktować tylko jako Jeżeli numer zgłaszane jest duża.Jeśli minimalna rozdzielczość zegara serwera jest większy niż prawdopodobnie interwał dla niektórych danych statystycznych na czasomierz, może być napompowane tych statystyk. |
SQLidu |
Liczba instrukcji INSERT, DELETE lub UPDATE po SQL_PERF_START. |
SQLiduRows |
Liczba instrukcji INSERT, DELETE lub UPDATE po SQL_PERF_START. |
SQLSelects |
Liczba przetworzonych po SQL_PERF_START instrukcji SELECT. |
SQLSelectRows |
Liczba wierszy po SQL_PERF_START opcję. |
Transakcje |
Liczba transakcji użytkownika po SQL_PERF_START, włączając w to wycofywanie zmian.Po uruchomieniu aplikacji ODBC z SQL_AUTOCOMMIT_ON, każdego polecenia, jest uważany za transakcję. |
SQLPrepares |
Liczba SQLPrepare wywołuje po SQL_PERF_START. |
ExecDirects |
Liczba SQLExecDirect wywołuje po SQL_PERF_START. |
SQLExecutes |
Liczba SQLExecute wywołuje po SQL_PERF_START. |
CursorOpens |
Liczba określająca, ile razy sterownik otworzył kursor serwera po SQL_PERF_START. |
CursorSize |
Liczba wierszy w zestawach wyników, otwierany przez kursory po SQL_PERF_START. |
CursorUsed |
Liczba wierszy faktycznie pobierane za pośrednictwem sterownika z kursorów po SQL_PERF_START. |
PercentCursorUsed |
Jest równe CursorUsed/CursorSize.Na przykład jeśli aplikacja powoduje otwarcie kursor serwera do wykonania "SELECT Count(*) FROM autorzy" sterownika, 23 wierszy będzie w wyniku dla instrukcja SELECT.Jeśli następnie aplikacja pobiera tylko trzy z tych wierszy, CursorUsed/CursorSize jest 3/23, więc PercentCursorUsed 13.043478. |
AvgFetchTime |
Jest równe SQLFetchTime/SQLFetchCount. |
AvgCursorSize |
Jest równe CursorSize/CursorOpens. |
AvgCursorUsed |
Jest równe CursorUsed/CursorOpens. |
SQLFetchTime |
Skumulowana kwota czas trwania pobiera przed kursory serwera, aby zakończyć. |
SQLFetchCount |
Liczba pobiera Sporządzono przed kursory serwera po SQL_PERF_START. |
CurrentStmtCount |
Liczba dojść do instrukcja aktualnie otwartych dla wszystkich połączeń otwarte w sterowniku. |
MaxOpenStmt |
Maksymalna liczba instrukcja jednocześnie otwartych dojść po SQL_PERF_START. |
SumOpenStmt |
Liczba dojść instrukcja, które zostały otwarte po SQL_PERF_START. |
Statystyka połączenia: |
|
CurrentConnectionCount |
Bieżąca liczba uchwytów aktywne połączenie ma otwierać się na serwerze. |
MaxConnectionsOpened |
Maksymalna liczba równoczesnych połączeń uchwyty otwierane po SQL_PERF_START. |
SumConnectionsOpened |
Suma liczbę dojść połączenia, które zostały otwarte po SQL_PERF_START. |
SumConnectionTime |
Suma czas, że wszystkie połączenia zostały otwarte po SQL_PERF_START.Na przykład jeśli aplikacja otwarte 10 połączeń i utrzymywane każdego połączenia przez 5 sekund, SumConnectionTime byłoby 50 sekund. |
AvgTimeOpened |
Jest równe SumConnectionsOpened / SumConnectionTime. |
Statystyki sieci: |
|
ServerRndTrips |
Liczba przypadków sterownik wysyłane polecenia do serwera i uzyskał odpowiedź ponownie. |
BuffersSent |
Liczba pakietów strumień danych tabelarycznych (TDS) wysłanych do SQL Server przez sterownik po SQL_PERF_START. Duże poleceń może zająć wiele bufory, więc jeśli dużych polecenia są wysyłane do serwera i jego wypełnienia sześć pakietów, ServerRndTrips jest zwiększany o jeden i BuffersSent jest zwiększany o sześć. |
BuffersRec |
Liczba odebranych przez kierowcę z pakietów TDS SQL Server Po uruchomienia aplikacji za pomocą sterownika. |
Żądania |
Liczba bajtów danych wysłanych do SQL Server w pakiety TDS po zastosowaniu uruchamiane przy użyciu sterownika. |
BytesRec |
Liczba bajtów danych odebranych przez sterownik z Pakiety TDS SQL Server Po uruchomienia aplikacji za pomocą sterownika. |
Pole SQLPERF |
Description |
---|---|
msExecutionTime |
Skumulowany ilości czas poświęconego sterownik przetwarzania po SQL_PERF_START, w tym momencie wydanego oczekiwanie na odpowiedzi z serwera. |
msNetworkServerTime |
Skumulowany ilość czas sterownik wydanego oczekiwanie na odpowiedzi z serwera. |
See Also