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:Azure SQL Database
Azure SQL Managed Instance
Obserwator bazy danych zbiera dane monitorowania z widoków systemu SQL i pobiera je do magazynu danych w postaci zestawów danych. Każdy zestaw danych jest tworzony przy użyciu danych z co najmniej jednego widoku systemu SQL. Dla każdego zestawu danych znajduje się oddzielna tabela w magazynie danych.
Zbieranie danych
Obserwator bazy danych zbiera dane monitorowania w okresowych odstępach czasu przy użyciu zapytań T-SQL. Dane zebrane w każdym wykonaniu zapytania są nazywane przykładem. Częstotliwość zbierania przykładów różni się w zależności od zestawu danych. Na przykład często zmieniające się dane, takie jak liczniki wydajności SQL, mogą być zbierane co 10 sekund, podczas gdy najczęściej statyczne dane, takie jak konfiguracja bazy danych, mogą być zbierane co pięć minut. Aby uzyskać więcej informacji, zobacz Zestawy danych.
Obserwator bazy danych korzysta ze strumieniowego pobierania danych w usłudze Azure Data Explorer oraz analizy w czasie rzeczywistym w usłudze Microsoft Fabric w celu zapewnienia monitorowania niemal w czasie rzeczywistym. Zazwyczaj zebrane dane monitorowania SQL stają się dostępne do raportowania i analizy w mniej niż 10 sekund. Możesz monitorować opóźnienie pozyskiwania danych na pulpitach nawigacyjnych monitora bazy danych, korzystając z linku Statystyki pozyskiwania.
Interakcja między obserwatorem bazy danych a obciążeniami aplikacji
Włączenie obserwatora bazy danych nie może mieć zauważalnego wpływu na wydajność obciążenia aplikacji. Częstsze zapytania monitorowania zwykle są wykonywane w zakresie sekund podrzędnych, natomiast zapytania, które mogą wymagać więcej czasu, na przykład w celu zwrócenia dużych zestawów danych, są uruchamiane w rzadkich odstępach czasu.
Aby jeszcze bardziej zmniejszyć ryzyko wpływu na obciążenia aplikacji, wszystkie zapytania obserwatora bazy danych w usłudze Azure SQL Database są zarządzane jako obciążenie wewnętrzne. Gdy rywalizacja o zasoby jest obecna, użycie zasobów przez zapytania monitorowania jest ograniczone do niewielkiej części całkowitych zasobów dostępnych dla bazy danych. Określa to priorytety obciążeń aplikacji w przypadku zapytań monitorowania.
Aby uniknąć konfliktów współbieżności, takich jak blokowanie i zakleszczenia między obciążeniami zbierania danych i baz danych uruchomionymi w zasobach usługi Azure SQL, zapytania monitorowania używają krótkich limitów czasu blokady i niskiego priorytetu zakleszczenia. Jeśli występuje konflikt współbieżności, priorytet jest przypisywany zapytaniom obciążenia aplikacji.
W następujących scenariuszach mogą wystąpić luki w zebranych danych:
- Jeśli ogólne wykorzystanie zasobów jest wysokie lub występuje konflikt współbieżności między zapytaniami monitorowania i obciążeniami aplikacji. W takich przypadkach zapytania monitorujące są zdepriorytetyzowane na rzecz obciążeń aplikacji.
- Jeśli masz automatyzację, która kończy długotrwałe sesje. Aby uniknąć luk w zebranych danych, wyklucz dowolną sesję, w której kolumna
program_name
w widoku systemu sys.dm_exec_sessions jestSQLExternalMonitoring
lubx_ms_reserved_sql_external_monitoring
.
Zbieranie danych w elastycznych pulach
Aby monitorować pulę elastyczną, należy wyznaczyć jedną bazę danych w puli jako baza danych kotwiczna. Obserwator łączy się z bazą danych Anchor. Ponieważ obserwator posiadaVIEW SERVER PERFORMANCE STATE
uprawnienie, widoki systemowe w bazie danych anchor udostępniają dane monitorujące dla całej puli.
Napiwek
Możesz dodać pustą bazę danych do każdej puli elastycznej, którą chcesz monitorować, i wyznaczyć ją jako bazę kotwiczącą. Dzięki temu można przenosić inne bazy danych do i z puli lub między pulami bez przerywania monitorowania elastycznej puli.
Dane zebrane z bazy danych kotwicy zawierają metryki na poziomie puli oraz niektóre metryki wydajności na poziomie bazy danych dla każdej bazy danych w puli, takie jak wykorzystanie zasobów i metryki szybkości żądań dla każdej bazy danych. W niektórych scenariuszach dodanie docelowego elementu SQL do monitorowania elastycznej puli baz danych jako całości może sprawić, że monitorowanie poszczególnych baz danych w tej puli stanie się zbędne.
Niektóre dane monitorowania, takie jak procesor CPU, pamięć, wykorzystanie magazynu na poziomie puli oraz statystyki oczekiwania, są zbierane dopiero na poziomie puli elastycznej, ponieważ nie można przypisać tych danych do pojedynczej bazy danych w puli. Z drugiej strony niektóre inne dane, takie jak statystyki środowiska uruchomieniowego zapytań, właściwości bazy danych, tabele i metadane indeksu, są dostępne tylko w przypadku dodawania poszczególnych baz danych jako obiektów docelowych SQL.
W przypadku dodawania pojedynczych baz danych z elastycznej puli jako obiektów docelowych SQL należy również dodać pulę elastyczną jako docelową bazę danych SQL. Dzięki temu uzyskasz bardziej pełny widok wydajności bazy danych i puli.
Monitorowanie gęstych elastycznych pul
Gęsta elastyczna pula zawiera dużą liczbę baz danych, ale ma stosunkowo mały rozmiar obliczeniowy. Ta konfiguracja pozwala klientom uzyskać znaczne oszczędności kosztów dzięki zachowaniu alokacji zasobów obliczeniowych do minimum przy założeniu, że tylko niewielka liczba baz danych w puli jest aktywna w tym samym czasie.
Zasoby obliczeniowe dostępne dla zapytań obserwatora bazy danych w gęstej elastycznej puli są dodatkowo ograniczone, aby uniknąć wpływu na zapytania aplikacji. W związku z tym obserwator bazy danych może nie być w stanie zbierać danych monitorowania z każdej bazy danych w gęstej elastycznej puli.
Napiwek
Aby monitorować gęstą elastyczną pulę, włącz monitorowanie na poziomie puli, dodając elastyczną pulę jako obiekt docelowy SQL.
Nie zaleca się monitorowania więcej niż kilku pojedynczych baz danych w gęstej elastycznej puli. Mogą wystąpić luki w zebranych danych lub większe niż oczekiwano interwały między próbkami danych z powodu niewystarczającej ilości zasobów obliczeniowych dostępnych dla zapytań obserwatora bazy danych.
Miejsce przechowywania danych
Klienci mogą przechowywać zebrane dane monitorowania SQL w jednym z trzech typów magazynów danych:
Baza danych w klastrze Azure Data Explorer. Domyślnie nowy klaster usługi Azure Data Explorer jest tworzony dla każdego nowego obserwatora i znajduje się w tym samym regionie świadczenia usługi Azure co obserwator.
Klienci mogą wybrać konkretny region świadczenia usługi Azure w lokalizacji geograficznej platformy Azure jako lokalizacji klastra usługi Azure Data Explorer i bazy danych. Aby uzyskać więcej informacji na temat możliwości replikacji danych w usłudze Azure Data Explorer, zobacz Omówienie ciągłości działania i odzyskiwania po awarii.
Baza danych w bezpłatnym klastrze usługi Azure Data Explorer.
Klienci mogą wybrać konkretną lokalizację geograficzną platformy Azure, ale nie określony region świadczenia usługi Azure jako lokalizację bezpłatnego klastra usługi Azure Data Explorer i bazy danych. Replikacja danych do innego regionu lub lokalizacji geograficznej nie jest obsługiwana.
Baza danych w analizie w czasie rzeczywistym w usłudze Microsoft Fabric.
Klienci nie mogą wybrać lokalizacji geograficznej bazy danych.
Aby w pełni kontrolować miejsce przechowywania danych dla zebranych danych monitorowania SQL, klienci muszą wybrać bazę danych w klastrze usługi Azure Data Explorer jako magazyn danych.
Klienci mogą dopasować lokalizację geograficzną i region swojego klastra usługi Azure Data Explorer do monitorowanego obszaru geograficznego i regionu monitorowanych zasobów usługi Azure SQL. Gdy zasoby usługi Azure SQL znajdują się w wielu regionach, klienci mogą wymagać utworzenia wielu obserwatorów i wielu klastrów usługi Azure Data Explorer, aby spełnić wymagania dotyczące rezydencji danych.
Zestawy danych
W tej sekcji opisano zestawy danych dostępne dla każdego typu docelowego SQL, w tym częstotliwość zbierania danych i nazwy tabel w magazynie danych.
Uwaga
Podczas korzystania z wersji zapoznawczej zestawy danych mogą być dodawane i usuwane. Właściwości zestawu danych, takie jak nazwa, opis, częstotliwość kolekcji i dostępne kolumny, mogą ulec zmianie.
Nazwa zestawu danych | Nazwa tabeli | Częstotliwość zbierania (hh:mm:ss) | opis |
---|---|---|---|
Aktywne sesje | sqldb_database_active_sessions |
00:00:30 |
Każdy wiersz reprezentuje sesję, która uruchamia żądanie, jest blokerem lub ma otwartą transakcję. |
Historia kopii zapasowych | sqldb_database_sql_backup_history |
00:05:00 |
Każdy wiersz reprezentuje pomyślnie ukończoną kopię zapasową bazy danych. |
Przetwarzanie zmian | sqldb_database_change_processing |
00:01:00 |
Każdy wiersz reprezentuje migawkę zagregowanych statystyk skanowania dzienników dla funkcji przetwarzania zmian, takich jak Przechwytywanie zmian danych lub Strumień zmian (Azure Synapse Link). |
Błędy przetwarzania zmian | sqldb_database_change_processing_errors |
00:01:00 |
Każdy wiersz reprezentuje błąd, który wystąpił podczas przetwarzania zmian, podczas korzystania z funkcji przetwarzania zmian, takiej jak Przechwytywanie zmian danych lub Zestawienie zmian (Azure Synapse Link). |
Łączność | sqldb_database_connectivity |
00:00:30 |
Każdy wiersz reprezentuje test łączności (logowanie i zapytanie) dla bazy danych. |
Repliki geograficzne | sqldb_database_geo_replicas |
00:00:30 |
Każdy wiersz reprezentuje replikę geograficzną podstawową lub pomocniczą, w tym metadane i statystyki replikacji geograficznej. |
Metadane indeksu | sqldb_database_index_metadata |
00:30:00 |
Każdy wiersz reprezentuje partycję indeksu i zawiera definicję indeksu, właściwości i statystyki operacyjne. |
Wykorzystanie pamięci | sqldb_database_memory_utilization |
00:00:30 |
Każdy wiersz reprezentuje zarządcę pamięci i obejmuje użycie pamięci przez zarządcę w instancji mechanizmu bazy danych. |
Brakujące indeksy | sqldb_database_missing_indexes |
00:15:00 |
Każdy wiersz reprezentuje indeks, który może poprawić wydajność zapytań w przypadku utworzenia. |
Zdarzenia poza pamięcią | sqldb_database_oom_events |
00:01:00 |
Każdy wiersz reprezentuje zdarzenie braku pamięci w silniku bazy danych. |
Liczniki wydajności (wspólne) | sqldb_database_performance_counters_common |
00:00:10 |
Każdy wiersz reprezentuje licznik wydajności wystąpienia silnika bazy danych. Ten zestaw danych zawiera często używane liczniki. |
Liczniki wydajności (szczegółowe) | sqldb_database_performance_counters_detailed |
00:01:00 |
Każdy wiersz reprezentuje licznik wydajności wystąpienia silnika bazy danych. Ten zestaw danych zawiera liczniki, które mogą być potrzebne do szczegółowego monitorowania i rozwiązywania problemów. |
Właściwości | sqldb_database_properties |
00:05:00 |
Każdy wiersz reprezentuje bazę danych i zawiera opcje bazy danych, limity ładu zasobów i inne metadane bazy danych. |
Statystyki czasu wykonania zapytań | sqldb_database_query_runtime_stats |
00:15:00 |
Każdy wiersz reprezentuje interwał czasu działania magazynu zapytań i zawiera statystyki wykonywania zapytań. |
Statystyki czasu oczekiwania zapytań | sqldb_database_query_wait_stats |
00:15:00 |
Każdy wiersz reprezentuje przedział czasowy Query Store i zawiera statystyki kategorii oczekiwania. |
Repliki | sqldb_database_replicas |
00:00:30 |
Każdy wiersz reprezentuje replikę bazy danych, w tym metadane replikacji i statystyki. Zawiera replikę podstawową i repliki geograficzne, gdy są zbierane na podstawowej, oraz repliki pomocnicze, gdy są zbierane na pomocniczej. |
Wykorzystanie zasobów | sqldb_database_resource_utilization |
00:00:15 |
Każdy wiersz reprezentuje zużycie CPU, I/O danych, I/O dziennika oraz inne statystyki dotyczące zużycia zasobów przez bazę danych w określonym przedziale czasowym. |
Statystyki sesji | sqldb_database_session_stats |
00:01:00 |
Każdy wiersz reprezentuje podsumowanie statystyk sesji dla bazy danych, agregowane przez atrybuty sesji nie addytywne, takie jak nazwa logowania, nazwa hosta, nazwa aplikacji itp. |
Planerzy SOS | sqldb_database_sos_schedulers |
00:01:00 |
Każdy wiersz reprezentuje harmonogram SOS i zawiera statystyki dotyczące harmonogramu, węzła procesora CPU i węzła pamięci. |
Wejście/wyjście pamięci masowej | sqldb_database_storage_io |
00:00:10 |
Każdy wiersz reprezentuje plik bazy danych i zawiera skumulowane statystyki liczby operacji we/wy na sekundę, przepływności i opóźnienia dla pliku. |
Wykorzystanie magazynu | sqldb_database_storage_utilization |
00:01:00 |
Każdy wiersz reprezentuje bazę danych i obejmuje jej wykorzystanie przestrzeni dyskowej, w tym tempdb , Magazyn Zapytań i Magazyn Trwałych Wersji. |
Metadane tabeli | sqldb_database_table_metadata |
00:30:00 |
Każdy wiersz reprezentuje tabelę lub widok indeksowany i zawiera metadane, takie jak liczba wierszy, użycie miejsca, kompresja danych, kolumny i ograniczenia. Zbierane, gdy liczba tabel i indeksowanych widoków w bazie danych wynosi 100 lub mniej. |
Statystyki czekania | sqldb_database_wait_stats |
00:00:10 |
Każdy wiersz reprezentuje rodzaj oczekiwania i zawiera skumulowane statystyki oczekiwania instancji silnika bazy danych. W przypadku baz danych w elastycznej puli zbierane są tylko statystyki oczekiwania obejmujące bazę danych. |
Uwaga
W przypadku baz danych w elastycznej puli zestawy danych bazy danych SQL zawierające dane na poziomie puli nie są zbierane. Obejmuje to użycie pamięci, zdarzenia poza pamięcią, liczniki wydajności (wspólne) i zestawy danych liczników wydajności (szczegółowe). Zestaw statystyk oczekiwania jest zbierany, ale zawiera tylko oczekiwania dotyczące danej bazy danych. Pozwala to uniknąć zbierania tych samych danych z każdej bazy danych w puli.
Dane na poziomie puli są zbierane w zestawach danych elastycznej puli SQL. W przypadku danej elastycznej puli, zestawy danych liczniki wydajności (wspólne) i liczniki wydajności (szczegółowe) zawierają metryki na poziomie puli i niektóre metryki na poziomie bazy danych, takie jak CPU, operacje we/wy danych, zapis dziennika, żądania, transakcje itp.
Typowe kolumny
Dla każdego typu docelowego SQL zestawy danych mają wspólne kolumny, zgodnie z opisem w poniższych tabelach.
Nazwa kolumny | opis |
---|---|
subscription_id |
Identyfikator subskrypcji Azure bazy danych SQL. |
resource_group_name |
Nazwa grupy zasobów bazy danych SQL. |
resource_id |
Identyfikator zasobu bazy danych SQL platformy Azure. |
sample_time_utc |
Godzina obserwowanej wartości w wierszu w formacie UTC. |
collection_time_utc |
Czas, kiedy wiersz został zebrany przez obserwatora, w UTC. Ta kolumna jest obecna w zestawach danych, w których czas zbierania może się różnić od czasu próbki. |
replica_type |
Jeden z: Podstawowy, Pomocniczy wysokiej dostępności, Przekaźnik replikacji geograficznej, Nazwana pomocnicza. |
logical_server_name |
Nazwa serwera logicznego w usłudze Azure SQL Database zawierająca monitorowaną bazę danych lub elastyczną pulę. |
database_name |
Nazwa monitorowanej bazy danych. |
database_id |
Identyfikator monitorowanej bazy danych, unikatowy w obrębie serwera logicznego. |
logical_database_id |
Unikatowy identyfikator bazy danych, który pozostaje niezmieniony w okresie istnienia bazy danych użytkownika. Zmiana nazwy bazy danych lub zmiana celu usługi nie zmienia tej wartości. |
physical_database_id |
Unikatowy identyfikator bazy danych dla bieżącej fizycznej bazy danych odpowiadającej bazie danych użytkownika. Zmiana celu usługi bazy danych powoduje zmianę tej wartości. |
replica_id |
Unikatowy identyfikator dla repliki obliczeniowej typu Hiperskala. |
Zestaw danych zawiera kolumny sample_time_utc
i collection_time_utc
, jeśli zawiera próbki zaobserwowane przed zebraniem wiersza przez obserwatora bazy danych. W przeciwnym razie czas obserwacji i czas zbierania są takie same, a zestaw danych zawiera tylko kolumnę sample_time_utc
.
Na przykład, zestaw danych sqldb_database_resource_utilization
pochodzi z widoku zarządzania dynamicznymi sys.dm_db_resource_stats. Dynamiczny widok zarządzania (DMV) zawiera kolumnę end_time
, który określa czas obserwacji każdego wiersza raportu zagregowanych statystyk zasobów dla 15-sekundowego interwału. Ten czas zostaje zgłoszony w kolumnie sample_time_utc
. Gdy obserwator wysyła zapytanie do tego widoku dynamicznego zarządzania, zestaw wyników może zawierać wiele wierszy, z których każdy ma inny element end_time
. Wszystkie te wiersze mają tę samą collection_time_utc
wartość.
Powiązana zawartość
- Monitorowanie obciążeń usługi Azure SQL za pomocą obserwatora bazy danych (wersja zapoznawcza)
- Szybki start: tworzenie obserwatora do monitorowania usługi Azure SQL (wersja zapoznawcza)
- Tworzenie i konfigurowanie obserwatora (wersja zapoznawcza)
- Analizowanie danych monitorowania obserwatora bazy danych (wersja zapoznawcza)
- Alerty obserwatora bazy danych (wersja zapoznawcza)
- Obserwator bazy danych — często zadawane pytania