sys.dm_db_file_space_usage (Transact-SQL)
Restituisce informazioni sull'utilizzo dello spazio per ogni file nel database.
[!NOTA]
Questa vista è applicabile solo al database tempdb.
Nome colonna |
Tipo di dati |
Descrizione |
---|---|---|
database_id |
smallint |
ID del database. |
file_id |
smallint |
ID del file. L'opzione file_id viene mappata a file_id in sys.dm_io_virtual_file_stats e a fileid in sys.sysfiles. |
unallocated_extent_page_count |
bigint |
Numero totale di pagine negli extent non allocati nel file. Per ulteriori informazioni, vedere Informazioni su pagine ed extent. Non sono incluse le pagine non utilizzate 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 le 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 variazioni nella colonna mixed_extent_page_count possono indicare un frequente utilizzo 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). Per ulteriori informazioni sulle pagine SGAM, vedere Gestione delle allocazioni di extent e dello spazio libero.
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. Nei contatori di pagine di oggetti interni sono inclusi gli oggetti seguenti:
Tabelle di lavoro per operazioni cursore o spool e archiviazione di oggetti LOB (Large Object) temporanei
File di lavoro per 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.
Esempi
Per esempi sull'utilizzo della vista sys.dm_db_file_space_usage, vedere Risoluzione dei problemi relativi allo spazio su disco insufficiente in tempdb.
Vedere anche