Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Sesja system_health jest sesją zdarzeń rozszerzonych, która jest domyślnie włączona do SQL Server i Azure SQL Managed Instance. Ta sesja jest uruchamiana automatycznie po uruchomieniu aparatu bazy danych i działa bez zauważalnego obciążenia związanego z wydajnością. Sesja zbiera dane systemowe, których można użyć w celu ułatwienia rozwiązywania problemów z wydajnością silnika baz danych.
Ważne
Zalecamy, aby nie zatrzymywać, zmieniać ani usuwać system_health sesji. Wszelkie zmiany wprowadzone w system_health ustawieniach sesji mogą zostać zastąpione przez przyszłą aktualizację produktu.
Sesja zbiera informacje zawierające następujące informacje:
- Dla wszelkich sesji, które napotykają
sql_textisession_idw przypadku błędu z ważnością >= 20. -
sql_textisession_iddla wszystkich sesji, które napotykają błąd związany z pamięcią. Błędy obejmują 17803, 701, 802, 8645, 8651, 8657 i 8902. - Zapis wszelkich problemów z nierozdzielającym się planistą. Są one wyświetlane w dzienniku błędów programu SQL Server jako błąd 17883.
- Wszelkie wykryte zakleszczenia, w tym wykres przedstawiający zakleszczenie.
- Element
callstack,sql_textisession_idw odniesieniu do wszystkich sesji, które czekały na zatrzaski (lub inne interesujące zasoby) przez > 15 sekund. -
callstack,sql_text, isession_iddla wszystkich sesji, które czekały na blokady przez > 30 sekund. -
sql_text,callstackisession_iddla wszystkich sesji, które czekały przez długi czas na oczekiwania wstępne. Czas trwania zależy od typu oczekiwania. Prewencyjne oczekiwanie to sytuacja, w której SQL Server czeka na zewnętrzne wywołania API. - Błędy
callstackalokacji środowiska CLR i alokacji wirtualnejsession_id. - Zdarzenia buforu pierścieniowego dla brokera pamięci, monitora harmonogramu, OOM węzła pamięci, zabezpieczeń i łączności.
- Rezultaty składnika systemu z
sp_server_diagnostics. - Stan instancji zbierany przez
scheduler_monitor_system_health_ring_buffer_recorded. - Błędy alokacji CLR
- Błędy łączności przy użyciu polecenia
connectivity_ring_buffer_recorded. - Błędy zabezpieczeń podczas korzystania z
security_error_ring_buffer_recorded.
Uwaga / Notatka
Aby uzyskać więcej informacji na temat zakleszczeń, zobacz Przewodnik Zakleszczenia. Aby uzyskać więcej informacji na temat komunikatów o błędach SQL, zobacz Zdarzenia i błędy aparatu bazy danych.
Wyświetlanie danych sesji system_health
Sesja używa zarówno buforu pierścieniowego jako celu, jak i pliku zdarzeń jako celu do przechowywania danych. Obiekt docelowy pliku zdarzenia jest skonfigurowany z maksymalnym rozmiarem 5 MB i zasadami przechowywania plików wynoszącymi 4 pliki. W wersjach SQL Server Standard i Enterprise docelowy plik zdarzeń ma zwiększone limity: maksymalny rozmiar 100 MB oraz zasada przechowywania plików do 10 plików.
Aby wyświetlić dane sesji z buforu pierścienia za pomocą interfejsu użytkownika Zdarzeń Rozszerzonych dostępnego w programie SQL Server Management Studio, zobacz Zaawansowane wyświetlanie danych docelowych Zdarzeń Rozszerzonych w programie SQL Server — oglądanie danych na żywo.
Aby wyświetlić dane sesji z docelowego buforu pierścienia w języku Transact-SQL, użyj następującego zapytania:
SELECT CAST(xet.target_data as xml) AS target_data
FROM sys.dm_xe_session_targets xet
JOIN sys.dm_xe_sessions xe
ON xe.address = xet.event_session_address
WHERE xe.name = 'system_health'
Aby wyświetlić dane sesji z pliku zdarzenia, użyj interfejsu użytkownika podglądu zdarzeń rozszerzonych dostępnych w programie SQL Server Management Studio. Aby uzyskać więcej informacji, zobacz Wyświetlanie danych zdarzeń w programie SQL Server Management Studio.
Przywracanie sesji system_health
Jeśli usuniesz sesję system_health , możesz ją przywrócić, wykonując u_tables.sql skrypt. Ten plik znajduje się w następującym folderze, gdzie C: reprezentuje dysk, na którym zainstalowano pliki programu SQL Server i MSSQLnn główną wersję programu SQL Server:
C:\Program Files\Microsoft SQL Server\MSSQLnn.\<instanceid>\MSSQL\Install
Po przywróceniu sesji należy ją uruchomić przy użyciu ALTER EVENT SESSION instrukcji lub za pomocą węzła Zdarzenia rozszerzone w Eksploratorze obiektów. W przeciwnym razie sesja zostanie uruchomiona automatycznie przy następnym ponownym uruchomieniu usługi programu SQL Server.
Sesja system_health w usłudze Azure SQL
W usłudze Azure SQL Managed Instance system_health dane sesji można wyświetlić, klikając prawym przyciskiem event_file lub ring_buffer element docelowy w Eksploratorze Obiektów, a następnie wybierając pozycję Wyświetl dane docelowe.
W usłudze Azure SQL Database nie ma wbudowanej system_health sesji zdarzeń rozszerzonych, ale możesz użyć sys.fn_xe_file_target_read_file() tej funkcji do odczytywania z sesji zdarzeń rozszerzonych tworzonych samodzielnie i przechowywanych w usłudze Azure Storage. Aby zapoznać się z przewodnikiem, zobacz Kod docelowy pliku zdarzeń dla zdarzeń rozszerzonych w usłudze Azure SQL Database.