Condividi tramite


Viste a gestione dinamica di sistema

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure endpoint di analisi SQL di Azure Synapse Analytics Platform System (PDW) in Microsoft Fabric Warehouse in Microsoft Fabric

Le viste a gestione dinamica (DMV) e le funzioni a gestione dinamica restituiscono informazioni sullo stato del server che possono essere usate 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. Gli schemi e i dati restituiti possono 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 versioni future di SQL Server, Microsoft può aumentare la definizione di qualsiasi visualizzazione a gestione dinamica aggiungendo colonne alla fine dell'elenco di colonne. 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. Per SQL Server 2022 e versioni successive, è necessario VISUALIZZARE LO STATO DELLE PRESTAZIONI DEL SERVER o VIEW SERVER SECURITY STATE è necessario per alcune DMV correlate alla sicurezza.

  • Funzioni e viste a gestione dinamica con ambito database. Richiedono l'autorizzazione VIEW DATABASE STATE nel database. Per SQL Server 2022 e versioni successive, è necessario VISUALIZZARE LO STATO DELLE PRESTAZIONI DEL DATABASE o VIEW DATABASE SECURITY STATE è necessario per alcune DMV correlate alla sicurezza.

Eseguire query su DMV

È possibile fare riferimento alle viste a gestione dinamica nelle istruzioni Transact-SQL usando nomi in due parti, in tre parti o in quattro parti. È possibile fare riferimento alle funzioni di gestione dinamica nelle istruzioni Transact-SQL usando nomi in due parti o in tre parti. Non è possibile fare riferimento a viste e funzioni a gestione dinamica nelle istruzioni Transact-SQL usando nomi in una sola 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;

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, creare prima l'utente in master e quindi negare all'utente l'autorizzazione SELECT per le viste a gestione dinamica o le funzioni a cui non si vuole accedere. In seguito, l'utente non può selezionare da queste funzioni o viste a gestione dinamica, indipendentemente dal contesto del database dell'utente.

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.

In questa sezione

Le funzioni e le viste a gestione dinamica sono state organizzate in base alle categorie seguenti.