Udostępnij za pośrednictwem


Zbieranie danych i zestawy danych obserwatora bazy danych (wersja zapoznawcza)

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 z pozyskiwania danych przesyłanych strumieniowo w usłudze Azure Data Explorer i 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. Opóźnienie pozyskiwania danych można monitorować na pulpitach nawigacyjnych obserwatora bazy danych przy użyciu 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.

Możesz zaobserwować luki w zebranych danych, jeśli ogólne wykorzystanie zasobów jest wysokie lub jeśli wystąpią konflikty współbieżności. W takich przypadkach zapytania monitorowania mogą być przestarzałe na rzecz obciążeń aplikacji.

Zbieranie danych w elastycznych pulach

Aby monitorować pulę elastyczną, należy wyznaczyć jedną bazę danych w puli jako bazę danych kotwicy. Obserwator bazy danych łączy się z bazą danych kotwicy. Ponieważ obserwator przechowuje VIEW SERVER PERFORMANCE STATE uprawnienie, widoki systemowe w bazie danych kotwicy zapewniają dane monitorowania dla całej puli.

Napiwek

Pustą bazę danych można dodać do każdej elastycznej puli, którą chcesz monitorować, i wyznaczyć ją jako bazę danych kotwicy. 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 obiektu docelowego SQL elastycznej puli w celu monitorowania elastycznej puli jako całości może sprawić, że nie będzie konieczne monitorowanie poszczególnych baz danych w puli.

Niektóre dane monitorowania, takie jak procesor CPU na poziomie puli, pamięć, wykorzystanie magazynu i statystyki oczekiwania, są zbierane tylko na poziomie puli elastycznej, ponieważ nie można przypisać jej 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.

Przechowywanie danych

Klienci mogą przechowywać zebrane dane monitorowania SQL w jednym z trzech typów magazynów danych:

  • Baza danych w klastrze usługi 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ści kolekcji 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ść kolekcji (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, takiej jak Przechwytywanie zmian danych lub Zestawienie 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 sondę łączności (identyfikator logowania i zapytanie) dla bazy danych.
Repliki geograficzne sqldb_database_geo_replicas 00:00:30 Każdy wiersz reprezentuje replikę podstawową lub pomocniczą replikę geograficzną, 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:10 Każdy wiersz reprezentuje urzędnika pamięci i obejmuje użycie pamięci przez urzędnika w wystąpieniu aparatu 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 poza pamięcią w aucie bazy danych.
Liczniki wydajności (wspólne) sqldb_database_performance_counters_common 00:00:10 Każdy wiersz reprezentuje licznik wydajności wystąpienia aparatu 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 aparatu 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 środowiska uruchomieniowego zapytań sqldb_database_query_runtime_stats 00:15:00 Każdy wiersz reprezentuje interwał środowiska uruchomieniowego magazynu zapytań i zawiera statystyki wykonywania zapytań.
Statystyki oczekiwania zapytań sqldb_database_query_wait_stats 00:15:00 Każdy wiersz reprezentuje interwał środowiska uruchomieniowego magazynu zapytań i zawiera statystyki kategorii oczekiwania.
Repliki sqldb_database_replicas 00:00:10 Każdy wiersz reprezentuje replikę bazy danych, w tym metadane replikacji i statystyki. Zawiera replikę podstawową i repliki geograficzne podczas zbierania replik podstawowych i pomocniczych w przypadku zbierania ich w pomocniczym obiekcie pomocniczym.
Wykorzystanie zasobów sqldb_database_resource_utilization 00:00:15 Każdy wiersz reprezentuje procesor CPU, we/wy danych, we/wy dziennika i inne statystyki użycia zasobów dla bazy danych w interwale czasu.
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.
Harmonogramy 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.
We/wy magazynu 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 zawiera jej użycie magazynu, w tym tempdbmagazyn 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.
Statystyki oczekiwania sqldb_database_wait_stats 00:00:10 Każdy wiersz reprezentuje typ oczekiwania i zawiera skumulowane statystyki oczekiwania wystąpienia aparatu bazy danych. W przypadku baz danych w elastycznej puli zbierane są tylko statystyki oczekiwania w zakresie bazy 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 danych statystyk oczekiwania jest zbierany, ale zawiera tylko oczekiwania w zakresie 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 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 procesor CPU, operacje we/wy danych, zapis dzienników, żą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 platformy Azure bazy danych SQL.
resource_group_name Nazwa grupy zasobów bazy danych SQL.
resource_id Identyfikator zasobu platformy Azure bazy danych SQL.
sample_time_utc Godzina obserwowanej wartości w wierszu w formacie UTC.
collection_time_utc Czas zbierania wiersza przez obserwatora w formacie 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, usługa przesyłania dalej 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 bazy danych 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 repliki obliczeniowej w warstwie 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 sqldb_database_resource_utilization zestaw danych pochodzi z dynamicznego widoku zarządzania (DMV) sys.dm_db_resource_stats . Dynamiczny widok zarządzania zawiera kolumnę end_time , która jest czasem obserwacji dla każdego wiersza raportowania zagregowanych statystyk zasobów dla 15-sekundowego interwału. Tym razem jest raportowany w kolumnie sample_time_utc . Gdy obserwator bazy danych wysyła zapytanie do tego dynamicznego widoku zarządzania, zestaw wyników może zawierać wiele wierszy, z których każdy ma inny end_timeelement . Wszystkie te wiersze mają tę samą collection_time_utc wartość.