Funzioni e viste a gestione dinamica (Transact-SQL)
Le funzioni e le viste a gestione dinamica restituiscono informazioni sullo stato del server che possono essere utilizzate per monitorare l'integrità di un'istanza del server, diagnosticare i problemi e ottimizzare le prestazioni.
Importante |
---|
Le funzioni e le viste a gestione dinamica restituiscono dati interni, specifici dell'implementazione, relativi allo stato. I dati restituiti e gli schemi potrebbero cambiare nelle versioni future di SQL Server. Le funzioni e le viste a gestione dinamica delle versioni future potrebbero pertanto non essere compatibili con quelle contenute in questa versione. Ad esempio, nelle prossime versioni di SQL Server, è possibile che Microsoft estenda la definizione di qualsiasi vista a gestione dinamica aggiungendo colonne alla fine del relativo elenco. Non è consigliabile utilizzare la sintassi SELECT * FROM dynamic_management_view_name nel codice di produzione. Il numero di colonne restituite potrebbe infatti cambiare compromettendo il corretto funzionamento dell'applicazione. |
Esistono due tipi di funzioni e viste a gestione dinamica:
Funzioni e viste a gestione dinamica con ambito server. Richiedono l'autorizzazione VIEW SERVER STATE nel server.
Funzioni e viste a gestione dinamica con ambito database. Richiedono l'autorizzazione VIEW DATABASE STATE nel database.
Esecuzione di query su viste a gestione dinamica
È possibile fare riferimento alle viste a gestione dinamica nelle istruzioni Transact-SQL utilizzando nomi composti da due, tre o quattro parti. È invece possibile fare riferimento alle funzioni a gestione dinamica nelle istruzioni Transact-SQL utilizzando nomi composti da due o tre parti. Non è possibile fare riferimento a funzioni e viste a gestione dinamica nelle istruzioni Transact-SQL utilizzando nomi composti da una parte.
Tutte le funzioni e le viste a gestione dinamica esistono nello schema sys e seguono questa convenzione di denominazione dm_*. Quando si utilizza una funzione o vista a gestione dinamica, è necessario anteporre al nome della funzione o vista il prefisso di schema sys. Ad esempio, per eseguire una query sulla vista a gestione dinamica dm_os_wait_stats, eseguire la query seguente:
SELECT wait_type, wait_time_ms
FROM sys.dm_os_wait_stats;
GO
Autorizzazioni necessarie
Per eseguire una query su una funzione o una vista a gestione dinamica è necessaria l'autorizzazione SELECT per l'oggetto e l'autorizzazione VIEW SERVER STATE o VIEW DATABASE STATE. Ciò consente di restringere in maniera selettiva l'accesso di un utente o di un account a funzioni e viste a gestione dinamica. A tale scopo, è necessario innanzitutto creare l'utente nel database master, quindi negargli l'autorizzazione SELECT per le funzioni o viste a gestione dinamica per le quali si desidera impedire l'accesso. Di conseguenza, l'utente non sarà più in grado di selezionare queste funzioni e viste a gestione dinamica, indipendentemente dal relativo contesto di database.
Nota
Poiché DENY è prioritaria, se a un utente sono state concesse le autorizzazioni VIEW SERVER STATE ma è stata negata l'autorizzazione VIEW DATABASE STATE, l'utente sarà in grado di visualizzare le informazioni a livello di server, ma non quelle a livello di database.
Contenuto della sezione
Le funzioni e le viste a gestione dinamica sono state organizzate in base alle categorie seguenti.