sys.dm_db_file_space_usage (Transact-SQL)
Restituisce informazioni sull'utilizzo dello spazio per ogni file del database.
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
database_id |
smallint |
ID del database. |
file_id |
smallint |
ID del file. Viene eseguito il mapping di file_id a file_id in sys.dm_io_virtual_file_stats e a fileid in sys.sysfiles. |
filegroup_id |
smallint |
ID del filegroup. |
total_page_count |
bigint |
Numero totale di pagine nel file. |
allocated_extent_page_count |
bigint |
Numero totale di pagine negli extent allocati nel file. |
unallocated_extent_page_count |
bigint |
Numero totale di pagine negli extent non allocati nel file. Non sono incluse le pagine inutilizzate negli extent allocati. |
version_store_reserved_page_count |
bigint |
Numero totale di pagine negli extent uniformi allocati per l'archivio delle versioni. Le pagine dell'archivio delle versioni non vengono mai allocate dagli extent misti. Le pagine IAM non vengono incluse perché vengono sempre allocate dagli extent misti. Le pagine PFS vengono incluse se vengono allocate da un extent uniforme. Per ulteriori informazioni, vedere sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_count |
bigint |
Numero totale di pagine allocate da extent uniformi per gli oggetti utente nel database. Sono incluse nel conteggio le pagine non utilizzate da un extent allocato. Le pagine IAM non vengono incluse perché vengono sempre allocate dagli extent misti. Le pagine PFS vengono incluse se vengono allocate da un extent uniforme. È possibile utilizzare la colonna total_pages nella vista del catalogo sys.allocation_units per restituire il conteggio delle pagine riservate di ogni unità di allocazione nell'oggetto utente. Si noti, tuttavia, che la colonna total_pages include pagine IAM. |
internal_object_reserved_page_count |
bigint |
Numero totale di pagine negli extent uniformi allocate per gli oggetti interni nel file. Sono incluse nel conteggio le pagine non utilizzate da un extent allocato. Le pagine IAM non vengono incluse perché vengono sempre allocate dagli extent misti. Le pagine PFS vengono incluse se vengono allocate da un extent uniforme. Non esistono viste del catalogo o oggetti a gestione dinamica che restituiscono il conteggio delle pagine di ogni oggetto interno. |
mixed_extent_page_count |
bigint |
Numero totale di pagine allocate e non allocate negli extent misti allocati nel file. Gli extent misti contengono le pagine allocate a oggetti diversi. In questo conteggio sono incluse tutte le pagine IAM nel file. |
Osservazioni
I conteggi di pagine vengono sempre eseguiti a livello di extent. I relativi valori saranno pertanto sempre multipli di otto. Agli extent contenenti le pagine di allocazione GAM (Global Allocation Map, mappa di allocazione globale) e SGAM (Shared Global Allocation Map, mappa di allocazione globale condivisa) vengono allocati extent uniformi. Non vengono inclusi nei conteggi di pagine precedentemente descritti.
Il contenuto dell'archivio delle versioni corrente è disponibile in sys.dm_tran_version_store. Viene tenuto traccia delle pagine dell'archivio delle versioni a livello di file anziché a livello di sessione o attività in quanto tali pagine sono risorse globali. Una sessione può generare versioni, ma le versioni non possono essere rimosse al termine della sessione. È necessario considerare l'operazione di pulizia dell'archivio delle versioni come la transazione con esecuzione più lunga che deve accedere alla versione precedente. Per individuare la transazione con esecuzione più lunga relativa alla pulizia dell'archivio delle versioni, visualizzare la colonna elapsed_time_seconds in sys.dm_tran_active_snapshot_database_transactions.
Frequenti modifiche nella colonna mixed_extent_page_count possono indicare un utilizzo intenso di pagine SGAM. In questo caso, è possibile rilevare numerose attese PAGELATCH_UP in cui la risorsa attesa è una pagina SGAM. Per ulteriori informazioni, vedere sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) e sys.dm_os_latch_stats (Transact-SQL).
Oggetti utente
Nei contatori di pagine di oggetti utente sono inclusi gli oggetti seguenti:
Tabelle e indici definiti dall'utente
Tabelle e indici di sistema
Tabelle e indici temporanei globali
Tabelle e indici temporanei locali
Variabili di tabella
Tabelle restituite nelle funzioni con valori di tabella
Oggetti interni
Gli oggetti interni sono solo in tempdb. Gli oggetti seguenti vengono inclusi nei contatori di pagine degli oggetti interni:
Tabelle di lavoro per operazioni cursore o spool e archiviazione di oggetti LOB (Large Object) temporanei
File di lavoro per le operazioni quali un hash join
Operazioni di ordinamento
Cardinalità delle relazioni
Da |
A |
Relazione |
---|---|---|
sys.dm_db_file_space_usage.database_id, file_id |
sys.dm_io_virtual_file_stats.database_id, file_id |
Uno-a-uno |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Vedere anche
Riferimento
Funzioni e viste a gestione dinamica (Transact-SQL)
Viste a gestione dinamica relative ai database (Transact-SQL)