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 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 zależności od wzorców obciążeń aplikacji może to spowodować sporadyczne luki w zebranych danych dla niektórych zestawów danych.
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. Dotyczy to na przykład metryk użycia zasobów i liczby żądań dla każdej bazy danych. W niektórych scenariuszach monitorowanie elastycznej puli jako całości sprawia, że monitorowanie poszczególnych baz danych w puli jest niepotrzebne.
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 na poziomie bazy danych.
W przypadku dodawania pojedynczych baz danych z elastycznej puli jako obiektów docelowych obserwatora bazy danych należy również dodać pulę elastyczną jako docelową. 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 docelową.
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ą również 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, 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 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. |
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 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_time
element . 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 bazy danych do monitorowania usługi Azure SQL (wersja zapoznawcza)
- Tworzenie i konfigurowanie obserwatora bazy danych (wersja zapoznawcza)
- Analizowanie danych monitorowania obserwatora bazy danych (wersja zapoznawcza)
- Obserwator bazy danych — często zadawane pytania