sys.dm_db_resource_stats (Azure SQL-Datenbank)

Gilt für:Azure SQL-Datenbank

Gibt cpu-, E/A- und Arbeitsspeicherverbrauch für eine Datenbank in Azure SQL-Datenbank zurück. Eine Zeile ist für alle 15 Sekunden vorhanden, auch wenn keine Aktivität vorhanden ist. Historische Daten werden etwa eine Stunde lang gespeichert.

Hinweis

sys.dm_db_resource_statswird in Azure SQL verwaltete Instanz nicht unterstützt. Verwenden Sie stattdessen die sys.server_resource_stats Katalogansicht.

Spalten Datentyp Beschreibung
end_time datetime UTC-Zeit, die das Ende des aktuellen Berichtsintervalls angibt.
avg_cpu_percent Dezimalzahl (5,2) Die durchschnittliche Servernutzung als Prozentwert der maximalen Kapazität für die Dienstebene.
avg_data_io_percent Dezimalzahl (5,2) Durchschnittliche Daten-E/A-Auslastung in Prozent des Grenzwerts der Dienstebene. Informationen zu Hyperscale-Datenbanken finden Sie unter "Daten-E/A" in Ressourcenauslastungsstatistiken.
avg_log_write_percent Dezimalzahl (5,2) Durchschnittliche Transaktionsprotokollschreibvorgänge (in MB/s) als Prozentsatz des Grenzwerts der Dienstebene.
avg_memory_usage_percent Dezimalzahl (5,2) Die durchschnittliche Arbeitsspeichernutzung als Prozentwert der maximalen Kapazität für die Dienstebene.

Dies umfasst Arbeitsspeicher, der für Pufferpoolseiten und den Speicher von IN-Memory-OLTP-Objekten verwendet wird.
xtp_storage_percent Dezimalzahl (5,2) Speicherauslastung für In-Memory OLTP als Prozentsatz des Poollimits am Ende des Berichtsintervalls. Dies umfasst Speicher, der für die Speicherung der folgenden IN-Memory OLTP-Objekte verwendet wird: speicheroptimierte Tabellen, Indizes und Tabellenvariablen. Außerdem enthält sie Arbeitsspeicher, der für die Verarbeitung von ALTER TABLE-Vorgängen in speicheroptimierten Tabellen verwendet wird.

Gibt 0 zurück, wenn IN-Memory OLTP nicht in der Datenbank verwendet wird.
max_worker_percent Dezimalzahl (5,2) Maximale Anzahl gleichzeitiger Mitarbeiter (Anforderungen) im Prozentsatz des Grenzwerts der Dienstebene der Datenbank.
max_session_percent Dezimalzahl (5,2) Maximale Anzahl gleichzeitiger Sitzungen in Prozent des Grenzwerts der Dienstebene der Datenbank.
dtu_limit int Aktuelle DTU-Einstellung für die Maximale Datenbank für diese Datenbank während dieses Intervalls. Bei Datenbanken, die das vCore-basierte Modell verwenden, ist NULLdiese Spalte .
cpu_limit Dezimalzahl (5,2) Die Anzahl der vCores für diese Datenbank während dieses Intervalls. Bei Datenbanken, die das DTU-basierte Modell verwenden, ist NULLdiese Spalte .
avg_instance_cpu_percent Dezimalzahl (5,2) Durchschnittliche CPU-Auslastung durch die Datenbankmodulinstanz, die den Pool hosten, als Prozentsatz des Instanzenlimits. Die Granularität wird in einer Minute erfasst und umfasst die CPU-Auslastung sowohl von Benutzer- als auch internen Workloads.
avg_instance_memory_percent Dezimalzahl (5,2) Durchschnittliche Speicherauslastung für die SQL Server-Instanz, die die Datenbank hosten. Umfasst die Speicherauslastung sowohl von Benutzer- als auch von internen Workloads.
avg_login_rate_percent Dezimalzahl (5,2) Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht garantiert.
replica_role int Stellt die aktuelle Replikatrolle dar.

0 - Primär
1 - Sekundäre Verfügbarkeit (HA)
2 – Georeplikationsweiterleitung
3 – Benanntes Replikat

Meldet 1, wenn eine Verbindung mit ReadOnly absichtswilligem sekundären Ziel hergestellt wird. Wenn eine Verbindung mit einer geo-sekundären Region hergestellt wird, ohne die Absicht anzugeben ReadOnly , meldet 2, um eine Verbindung mit einer Georeplikationsweiterleitung widerzuspiegeln. Wenn eine Verbindung mit einem benannten Replikat ohne Angabe von ReadOnly Absicht hergestellt wird, meldet 3.

Tipp

Weitere Kontexte zu diesen Grenzwerten und Dienstebenen finden Sie in den Themen Dienstebenen, Manuelles Optimieren der Abfrageleistung in Azure SQL-Datenbank und SQL-Datenbank Ressourcenbeschränkungen und Ressourcengovernance.

Berechtigungen

Für diese Ansicht ist eine Berechtigung erforderlich VIEW DATABASE STATE .

Hinweise

Die von sys.dm_db_resource_stats Ihnen zurückgegebenen Daten werden als Prozentsatz der maximal zulässigen Grenzwerte für die Dienstebene/Leistungsstufe ausgedrückt, die Sie ausführen.

Wenn die Datenbank innerhalb der letzten 60 Minuten nicht auf einen anderen Server übertragen wurde, gibt die Ansicht nur Daten für die Zeit seit diesem Failover zurück.

Verwenden Sie für eine weniger differenzierte Ansicht dieser Daten mit längerer Aufbewahrungsdauer die sys.resource_stats Katalogansicht in Azure SQL-Datenbank. Diese Sicht erfasst die Daten jede 5 Minuten und behält die Verlaufsdaten 14 Tage bei. Weitere Informationen finden Sie unter sys.resource_stats.

Wenn eine Datenbank Mitglied eines elastischen Pools ist, werden ressourcenstatistiken, die als Prozentwerte dargestellt werden, als Prozent des Maximalen Grenzwerts für die Datenbanken ausgedrückt, wie in der Konfiguration des elastischen Pools festgelegt.

Beispiele

Im folgenden Beispiel werden ressourcenauslastungsdaten zurückgegeben, die nach der letzten Zeit für die aktuell verbundene Datenbank in Azure SQL-Datenbank oder Azure SQL verwaltete Instanz sortiert wurden.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

Im folgenden Beispiel wird die durchschnittliche DTU-Nutzung als Prozentsatz des maximal zulässigen DTU-Grenzwerts in der Leistungsstufe für die Benutzerdatenbank in der letzten Stunde angegeben. Ziehen Sie eine Erhöhung der Leistungsstufe in Erwägung, da sich diese Prozentsätze stets an 100 % annähern.

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;

Im folgenden Beispiel werden die durchschnittlichen und maximalen Werte für CPU-Prozentsatz, Daten- und Protokoll-E/A und Arbeitsspeichernutzung innerhalb der letzten Stunde zurückgegeben.

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;