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_stats
non è 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;