Udostępnij za pomocą


sys.dm_db_resource_stats

Dotyczy do:Azure SQL DatabaseBaza danych SQL w Microsoft Fabric

Zwraca użycie procesora CPU, operacji we/wy i pamięci dla bazy danych w usłudze Azure SQL Database. Jeden wiersz istnieje co 15 sekund, nawet jeśli nie ma żadnego działania. Dane historyczne są przechowywane przez około godzinę.

Uwaga / Notatka

sys.dm_db_resource_stats nie jest obsługiwana w usłudze Azure SQL Managed Instance. Zamiast tego użyj widoku wykazu sys.server_resource_stats .

Kolumny Typ danych Description
end_time datetime Czas UTC wskazuje koniec bieżącego interwału raportowania.
avg_cpu_percent dziesiętne (5,2) Średnie wykorzystanie zasobów obliczeniowych w procentach limitu warstwy usługi.
avg_data_io_percent dziesiętne (5,2) Średnie wykorzystanie operacji we/wy danych w procentach limitu warstwy usługi. W przypadku baz danych w warstwie Hiperskala zobacz Dane we/wy w statystykach użycia zasobów.
avg_log_write_percent dziesiętne (5,2) Średni zapis dziennika transakcji (w MB/s) jako procent limitu warstwy usługi.
avg_memory_usage_percent dziesiętne (5,2) Średnie wykorzystanie pamięci w procentach limitu warstwy usługi.

Obejmuje to pamięć używaną na stronach puli i magazynie obiektów In-Memory OLTP.
xtp_storage_percent dziesiętne (5,2) Wykorzystanie magazynu dla In-Memory OLTP jako procent limitu puli na końcu interwału raportowania. Obejmuje to pamięć używaną do przechowywania następujących obiektów OLTP In-Memory: tabele zoptymalizowane pod kątem pamięci, indeksy i zmienne tabeli. Obejmuje również pamięć używaną do przetwarzania operacji ALTER TABLE w tabelach zoptymalizowanych pod kątem pamięci.

Zwraca wartość 0, jeśli In-Memory OLTP nie jest używana w bazie danych.
max_worker_percent dziesiętne (5,2) Maksymalna liczba współbieżnych procesów roboczych (żądań) w procentach limitu warstwy usługi bazy danych.
max_session_percent dziesiętne (5,2) Maksymalna liczba współbieżnych sesji w procentach limitu warstwy usługi bazy danych.
dtu_limit int Bieżące ustawienie maksymalnej liczby jednostek DTU bazy danych dla tej bazy danych w tym interwale. W przypadku baz danych korzystających z modelu opartego na rdzeniach wirtualnych ta kolumna to NULL.
cpu_limit dziesiętne (5,2) Liczba rdzeni wirtualnych dla tej bazy danych w tym interwale. W przypadku baz danych korzystających z modelu opartego na jednostkach DTU ta kolumna to NULL.
avg_instance_cpu_percent dziesiętne (5,2) Średnie wykorzystanie procesora CPU przez wystąpienie aparatu bazy danych hostując pulę jako procent limitu wystąpień. Raportowany w ciągu jednej minuty szczegółowości i obejmuje wykorzystanie procesora CPU zarówno przez obciążenia użytkownika, jak i wewnętrzne.
avg_instance_memory_percent dziesiętne (5,2) Średnie użycie pamięci dla wystąpienia programu SQL Server hostowania bazy danych. Obejmuje wykorzystanie pamięci zarówno przez obciążenia użytkownika, jak i wewnętrzne.
avg_login_rate_percent dziesiętne (5,2) Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
replica_role int Reprezentuje bieżącą rolę repliki.

0 — podstawowy
1 — Pomocnicza wysoka dostępność (HA)
2 — Usługa przesyłania dalej replikacji geograficznej
3 — Nazwana replika

Raporty 1, gdy połączono z intencją ReadOnly do dowolnego możliwego do odczytu pomocniczego. W przypadku nawiązywania połączenia z pomocniczym obszarem geograficznym bez określania ReadOnly intencji raporty 2 odzwierciedlają połączenie z usługą przesyłania dalej replikacji geograficznej. W przypadku nawiązywania połączenia z nazwaną repliką bez określania ReadOnly intencji raporty 3.

Wskazówka

Aby uzyskać więcej informacji na temat tych limitów i warstw usług, zobacz tematy Warstwy usług, Ręczne dostrajanie wydajności zapytań w usłudze Azure SQL Database oraz limity zasobów i zarządzanie zasobami usługi SQL Database.

Permissions

Ten widok wymaga VIEW DATABASE STATE uprawnień.

Uwagi

Dane zwracane przez sys.dm_db_resource_stats program są wyrażane jako wartość procentowa maksymalnych dozwolonych limitów dla uruchomionej warstwy usługi/poziomu wydajności.

Jeśli baza danych została przełączona w tryb failover na inny serwer w ciągu ostatnich 60 minut, widok zwróci tylko dane czasu od czasu przejścia w tryb failover.

Aby uzyskać mniej szczegółowy widok tych danych z dłuższym okresem przechowywania, użyj sys.resource_stats widoku wykazu w usłudze Azure SQL Database. Ten widok przechwytuje dane co 5 minut i przechowuje dane historyczne przez 14 dni. Aby uzyskać więcej informacji, zobacz sys.resource_stats.

Gdy baza danych należy do elastycznej puli, statystyki zasobów przedstawione jako wartości procentowe są wyrażone jako procent maksymalnego limitu dla baz danych zgodnie z ustawieniem w konfiguracji elastycznej puli.

Przykłady

Poniższy przykład zwraca dane użycia zasobów uporządkowane według ostatniego czasu dla aktualnie połączonej bazy danych w usłudze Azure SQL Database lub Azure SQL Managed Instance.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

W poniższym przykładzie przedstawiono średnie użycie jednostek DTU w odniesieniu do wartości procentowej maksymalnego dozwolonego limitu jednostek DTU w poziomie wydajności bazy danych użytkownika w ciągu ostatniej godziny. Rozważ zwiększenie poziomu wydajności, ponieważ te wartości procentowe w pobliżu 100% na stałe.

SELECT end_time,
  (SELECT Max(v)
   FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS
   value(v)) AS [avg_DTU_percent]
FROM sys.dm_db_resource_stats;

Poniższy przykład zwraca średnie i maksymalne wartości procentowe użycia procesora CPU, danych i operacji we/wy dziennika oraz zużycie pamięci w ciągu ostatniej godziny.

SELECT
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
    AVG(avg_log_write_percent) AS 'Average Log Write I/O Throughput Utilization In Percent',
    MAX(avg_log_write_percent) AS 'Maximum Log Write I/O Throughput Utilization In Percent',
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;