Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Monitoraggio mediante le viste a gestione dinamica

Monitoraggio di database SQL di Azure mediante le viste a gestione dinamica

Aggiornamento: luglio 2015

Microsoft Database SQL di Microsoft Azure consente un subset di viste a gestione dinamica per diagnosticare i problemi di prestazioni che potrebbero essere causati da query bloccate o con esecuzione prolungata, colli di bottiglia delle risorse, piani di query insufficienti e così via. In questo argomento vengono fornite informazioni sul rilevamento dei problemi di prestazioni comuni mediante le viste a gestione dinamica in Database SQL di Microsoft Azure.

In Database SQL di Microsoft Azure sono supportate parzialmente tre categorie di viste a gestione dinamica:

  • Viste a gestione dinamica relative ai database

  • Viste a gestione dinamica relative all'esecuzione

  • Viste a gestione dinamica relative alle transazioni

Per informazioni dettagliate sulle viste a gestione dinamica, vedere Funzioni e viste a gestione dinamica (Transact-SQL) nella documentazione online di SQL Server.

In Database SQL di Microsoft Azure l'esecuzione di query su una DMV richiede le autorizzazioni VIEW DATABASE STATE. L'autorizzazione VIEW DATABASE STATE restituisce le informazioni su tutti gli oggetti all'interno del database corrente.

Per concedere l'autorizzazione VIEW DATABASE STATE a un utente del database specifico, eseguire la query seguente:

GRANT VIEW DATABASE STATE TO database_user;

In un'istanza locale di SQL Server le DMV restituiscono le informazioni sullo stato del server. In Database SQL di Microsoft Azure restituiscono solo le informazioni relative al database logico corrente.

noteNota
Quando si eseguono le viste sys.dm_exec_requests e sys.dm_exec_sessions, se si dispone dell'autorizzazione VIEW DATABASE STATE per il database, è possibile visualizzare tutte le sessioni in esecuzione nel database. In caso contrario, è possibile visualizzare solo la sessione corrente.

La query seguente restituisce le dimensioni in megabyte del database:

-- Calculates the size of the database. 

SELECT SUM(reserved_page_count)*8.0/1024

FROM sys.dm_db_partition_stats; 

GO

La query seguente restituisce le dimensioni in megabyte dei singoli oggetti nel database:

-- Calculates the size of individual database objects. 

SELECT sys.objects.name, SUM(reserved_page_count) * 8.0 / 1024

FROM sys.dm_db_partition_stats, sys.objects 

WHERE sys.dm_db_partition_stats.object_id = sys.objects.object_id 

GROUP BY sys.objects.name; 

GO

È possibile utilizzare la vista sys.dm_exec_connections per recuperare le informazioni sulle connessioni stabilite a un server Database SQL di Azure specifico e i dettagli su ciascuna connessione. Inoltre, la vista sys.dm_exec_sessions risulta utile quando si recuperano le informazioni su tutte le connessioni utente attive e le attività interne.

La query seguente recupera le informazioni sulla connessione corrente:

Le query con esecuzione rallentata o prolungata possono richiedere un numero elevato di risorse di sistema. In questa sezione viene illustrato come utilizzare le viste a gestione dinamica per rilevare alcuni problemi comuni di prestazioni delle query. Per informazioni dettagliate, vedere l'articolo Risoluzione dei problemi di prestazioni in SQL Server 2005 in Microsoft TechNet.

Nell'esempio seguente vengono restituite informazioni sulle prime cinque query classificate in base al tempo medio della CPU. Nell'esempio le query vengono aggregate in base al relativo valore hash, in modo da raggruppare le query logicamente equivalenti in base all'utilizzo di risorse cumulativo.

Le query con esecuzione rallentata o prolungata possono richiedere un utilizzo eccessivo delle risorse ed essere la conseguenza di query bloccate. La causa del blocco può essere costituita da progettazione di applicazioni non appropriata, piani di query non corretti, mancanza di indici utili e così via. È possibile utilizzare la vista sys.dm_tran_locks per ottenere informazioni sull'attività di blocco corrente in Database SQL di Azure. Per ottenere un codice di esempio, vedere sys.dm_tran_locks (Transact-SQL) nella documentazione online di SQL Server.

Anche un piano di query non efficiente può aumentare l'utilizzo della CPU. Nell'esempio seguente viene utilizzata la vista sys.dm_exec_query_stats per determinare la query che comporta un utilizzo cumulativo maggiore della CPU.

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft