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.
Viste a gestione dinamica dei gruppi di disponibilità AlwaysOn - Funzioni
Change Data Capture - sys.dm_cdc_errors
Rilevamento modifiche - sys.dm_tran_commit_table
Viste a gestione dinamica correlate a Common Language Runtime (Transact-SQL)
Mirroring del database - sys.dm_db_mirroring_auto_page_repair
Viste a gestione dinamica correlate al database (Transact-SQL)
Funzioni e viste a gestione dinamica relative all'esecuzione (Transact-SQL)
Viste a gestione dinamica degli eventi estesi
Viste a gestione dinamica FILESTREAM e FileTable (Transact-SQL)
Viste a gestione dinamica della ricerca full-text e semantica - Funzioni
Funzioni e viste a gestione dinamica della replica geografica (database SQL di Azure)
Funzioni e viste a gestione dinamica correlate all'indice (Transact-SQL)
Funzioni e viste a gestione dinamica correlate a I/O (Transact-SQL)
Viste a gestione dinamica delle tabelle ottimizzate per la memoria (Transact-SQL)
Funzioni e viste a gestione dinamica relative agli oggetti (Transact-SQL)
Notifiche query - sys.dm_qn_subscriptions
Viste a gestione dinamica correlate alla replica (Transact-SQL)
Viste a gestione dinamica relative a Resource Governor (Transact-SQL)
Funzioni e viste a gestione dinamica relative alla sicurezza (Transact-SQL)
Funzioni e viste a gestione dinamica del server (Transact-SQL)
Viste a gestione dinamica relative a Service Broker (Transact-SQL)
Dati spaziali - sys.dm_db_objects_disabled_on_compatibility_level_change
Viste a gestione dinamica di SQL e Parallel Data Warehouse
Viste a gestione dinamica correlate al sistema operativo SQL Server (Transact-SQL)
Viste a gestione dinamica correlate a Stretch Database (Transact-SQL)
Funzioni e viste DMV relative alle transazioni (Transact-SQL)