Condividi tramite


sys.dm_db_resource_stats (Database SQL di Azure)

Si applica a: Database SQL di Azure

Restituisce l'utilizzo di CPU, I/O e memoria per un database in database SQL di Azure. Esiste una riga per ogni 15 secondi, anche se non è presente alcuna attività. I dati cronologici vengono mantenuti per circa un'ora.

Nota

sys.dm_db_resource_statsnon è supportato in Istanza gestita di SQL di Azure. Usare invece la vista del catalogo sys.server_resource_stats .

Colonne Tipo di dati Descrizione
end_time datetime Ora UTC che indica la fine dell'intervallo di reporting corrente.
avg_cpu_percent decimal (5,2) Percentuale dell'utilizzo medio del calcolo del limite del livello del servizio.
avg_data_io_percent decimal (5,2) Utilizzo medio di I/O dei dati in percentuale del limite del livello di servizio. Per i database Hyperscale, vedere I/O dei dati nelle statistiche di utilizzo delle risorse.
avg_log_write_percent decimal (5,2) Scritture medie del log delle transazioni (in MB/s) come percentuale del limite del livello di servizio.
avg_memory_usage_percent decimal (5,2) Percentuale dell'utilizzo medio della memoria del limite del livello del servizio.

Ciò include la memoria usata per le pagine del pool di buffer e l'archiviazione di oggetti OLTP in memoria.
xtp_storage_percent decimal (5,2) Utilizzo dell'archiviazione per OLTP in memoria come percentuale del limite del pool alla fine dell'intervallo di report. Ciò include la memoria usata per l'archiviazione degli oggetti OLTP in memoria seguenti: tabelle ottimizzate per la memoria, indici e variabili di tabella. Include anche la memoria usata per l'elaborazione delle operazioni ALTER TABLE nelle tabelle ottimizzate per la memoria.

Restituisce 0 se OLTP in memoria non viene usato nel database.
max_worker_percent decimal (5,2) Numero massimo di ruoli di lavoro simultanei (richieste) in percentuale del limite del livello di servizio del database.
max_session_percent decimal (5,2) Numero massimo di sessioni simultanee in percentuale del limite del livello di servizio del database.
dtu_limit int Impostazione DTU massima corrente del database per questo database durante questo intervallo. Per i database che usano il modello basato su vCore, questa colonna è NULL.
cpu_limit decimal (5,2) Numero di vCore per questo database durante questo intervallo. Per i database che usano il modello basato su DTU, questa colonna è NULL.
avg_instance_cpu_percent decimal (5,2) Utilizzo medio della CPU da parte dell'istanza del motore di database che ospita il pool, come percentuale del limite di istanze. Segnalato con granularità di un minuto e include l'utilizzo della CPU sia da parte dell'utente che dai carichi di lavoro interni.
avg_instance_memory_percent decimal (5,2) Utilizzo medio della memoria per l'istanza di SQL Server che ospita il database. Include l'utilizzo della memoria da parte di utenti e carichi di lavoro interni.
avg_login_rate_percent decimal (5,2) Identificato solo a scopo informativo. Non supportato. La compatibilità futura non è garantita.
replica_role int Rappresenta il ruolo di replica corrente.

0 - Primario
1 - Disponibilità elevata (HA) secondaria
2 - Server d'inoltro di replica geografica
3 - Replica denominata

Segnala 1 quando si è connessi con ReadOnly finalità a qualsiasi secondario leggibile. Se ci si connette a un database secondario geografico senza specificare ReadOnly la finalità, restituisce 2 per riflettere una connessione a un server d'inoltro di replica geografica. Se ci si connette a una replica denominata senza specificare ReadOnly la finalità, restituisce 3.

Suggerimento

Per altre informazioni su questi limiti e livelli di servizio, vedere gli argomenti Livelli di servizio, Ottimizzare manualmente le prestazioni delle query in database SQL di Azure e database SQL limiti delle risorse e governance delle risorse.

Autorizzazioni

Questa vista richiede VIEW DATABASE STATE l'autorizzazione.

Osservazioni:

I dati restituiti da sys.dm_db_resource_stats vengono espressi come percentuale dei limiti massimi consentiti per il livello di servizio/prestazioni in esecuzione.

Se il database è stato eseguito il failover in un altro server negli ultimi 60 minuti, la vista restituirà solo i dati per il tempo trascorso dal failover.

Per una visualizzazione meno granulare di questi dati con un periodo di conservazione più lungo, usare la sys.resource_stats vista del catalogo in database SQL di Azure. Questa vista acquisisce i dati ogni 5 minuti e conserva i dati cronologici per 14 giorni. Per altre informazioni, vedere sys.resource_stats.

Quando un database è membro di un pool elastico, le statistiche delle risorse presentate come valori di percentuale vengono espresse come percentuale del limite massimo per i database come impostato nella configurazione del pool elastico.

Esempi

Nell'esempio seguente vengono restituiti i dati di utilizzo delle risorse ordinati in base all'ora più recente per il database attualmente connesso in database SQL di Azure o Istanza gestita di SQL di Azure.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

L'esempio seguente identifica il consumo medio di DTU in termini di percentuale del limite massimo consentito di DTU nel livello di prestazioni per il database utente nell'ora precedente. Provare ad aumentare il livello di prestazioni se queste percentuali si avvicinano in modo continuativo al 100%.

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;

L'esempio seguente restituisce i valori medi e massimi relativi alla percentuale di utilizzo della CPU, all'utilizzo di dati e I/O del log e al consumo di memoria nell'ultima ora.

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;