Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL-databas i Microsoft Fabric
Returnerar utrymmesanvändningsinformation för varje datafil i databasen.
Anmärkning
Om du vill anropa detta från Azure Synapse Analytics eller Analytics Platform System (PDW) använder du namnet sys.dm_pdw_nodes_db_file_space_usage. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
database_id |
smallint | Databas-ID. I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. |
file_id |
smallint | Fil-ID.file_id mappar till file_id in sys.dm_io_virtual_file_stats och till fileid i sys.sysfiles. |
filegroup_id |
smallint |
gäller för: SQL Server 2012 (11.x) och senare versioner. Filgrupps-ID. |
total_page_count |
bigint |
gäller för: SQL Server 2012 (11.x) och senare versioner. Totalt antal sidor i datafilen. |
allocated_extent_page_count |
bigint |
gäller för: SQL Server 2012 (11.x) och senare versioner. Totalt antal sidor i de tilldelade extents i datafilen. |
unallocated_extent_page_count |
bigint | Totalt antal sidor i de oallokerade extents i datafilen. Oanvända sidor i tilldelade extents ingår inte. |
version_store_reserved_page_count |
bigint | Totalt antal sidor i de enhetliga utsträckningar som är avsatta för versionslagret. Version Store-sidor tilldelas aldrig från blandade utsträckningar. IAM-sidor ingår inte, eftersom de alltid tilldelas från blandade utsträckningar. PFS-sidor inkluderas om de tilldelas från en enhetlig omfattning. För mer information, se sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_count |
bigint | Totalt antal sidor som tilldelats från enhetliga extenser för användarobjekt i databasen. Oanvända sidor från en tilldelad omfattning ingår i räkningen. IAM-sidor ingår inte, eftersom de alltid tilldelas från blandade utsträckningar. PFS-sidor inkluderas om de tilldelas från en enhetlig omfattning. Du kan använda kolumnen total_pages i sys.allocation_units katalogvy för att returnera antalet reserverade sidor för varje allokeringsenhet i användarobjektet. Kolumnen total_pages innehåller dock IAM-sidor. |
internal_object_reserved_page_count |
bigint | Totalt antal sidor i enhetliga extents tilldelade interna objekt i filen. Oanvända sidor från en tilldelad omfattning ingår i räkningen. IAM-sidor ingår inte, eftersom de alltid tilldelas från blandade utsträckningar. PFS-sidor inkluderas om de tilldelas från en enhetlig omfattning. Det finns ingen katalogvy eller dynamiskt hanteringsobjekt som returnerar sidantalet för varje internt objekt. |
mixed_extent_page_count |
bigint | Totalt antal tilldelade och oallokerade sidor i tilldelade blandade omfängder i filen. Blandade extents innehåller sidor som tilldelats olika objekt. Denna räkning inkluderar alla IAM-sidor i filen. |
modified_extent_page_count |
bigint |
Gäller för: SQL Server 2016 (13.x) SP2 och senare versioner. Totalt antal sidor som har ändrats i tilldelade utsträckningar av filen sedan senaste fullständiga databasbackup. Det modifierade sidantalet kan användas för att spåra antalet differentierade ändringar i databasen sedan senaste fullständiga backup, för att avgöra om differentialbackup behövs. |
pdw_node_id |
int |
gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) Identifieraren för noden som den här fördelningen är på. |
distribution_id |
int |
gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) Det unika numeriska ID:t som är kopplat till fördelningen. |
Anmärkningar
Sidantalet är alltid på omfattningsnivå. Därför är sidantalet alltid en multipel av åtta. De utsträckningar som innehåller Global Allocation Map (GAM) och Shared Global Allocation Map (SGAM) allokeringssidor tilldelas enhetliga utsträckningar. De ingår inte i de tidigare beskrivna sidräkningarna. Mer information om sidor och omfattningar finns i Arkitekturguide för sidor och omfattningar.
Innehållet i den nuvarande versionen av butiken finns i sys.dm_tran_version_store. Versionslagersidor spåras på filnivå istället för sessions- och uppgiftsnivå, eftersom de är globala resurser. En session kan generera versioner, men versionerna kan inte tas bort när sessionen avslutas. Versionsbutiksrensning måste ta hänsyn till den längst pågående transaktionen som behöver åtkomst till den specifika versionen. Den längst pågående transaktionen relaterad till versionslagringsrengöring kan upptäckas genom att titta på kolumnen elapsed_time_seconds i sys.dm_tran_active_snapshot_database_transactions.
Frekventa ändringar i kolumnen mixed_extent_page_count kan tyda på omfattande användning av SGAM-sidor. När detta händer kan du se många PAGELATCH_UP väntetider där väntresursen är en SCAM-sida. För mer information, se sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) ochsys.dm_os_latch_stats (Transact-SQL).
Användarobjekt
Följande objekt ingår i användarobjektets sidräknare:
- Användardefinierade tabeller och index
- Systemtabeller och index
- Globala temporära tabeller och index
- Lokala temporära tabeller och index
- Tabellvariabler
- Tabeller returnerade i tabellvärda funktioner
Interna objekt
Interna objekt finns endast i tempdb. Följande objekt ingår i de interna objektsidans räknare:
- Arbetstabeller för markör- eller spooloperationer samt tillfällig lagring av stora objekt (LOB)
- Arbetsfiler för operationer som en hash-join
- Sortera körningar
Relations kardinaliteter
| Från | Till | Förhållande |
|---|---|---|
sys.dm_db_file_space_usage.database_id, file_id |
sys.dm_io_virtual_file_stats.database_id, file_id |
One-to-one |
Permissions
På SQL Server 2019 (15.x) och tidigare versioner, samt SQL Managed Instance, krävs VIEW SERVER STATE behörighet.
På SQL Server 2022 (16.x) och senare versioner krävs behörighet VIEW SERVER PERFORMANCE STATE på servern.
I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.
Examples
Bestem mängden ledigt utrymme i tempdb
Följande fråga returnerar det totala antalet lediga sidor och totalt ledigt utrymme i megabyte (MB) som finns tillgängligt i alla datafiler i tempdb.
USE tempdb;
GO
SELECT
SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count) * 1.0 / 128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;
Bestäm hur mycket utrymme användarobjekten använder
Följande fråga returnerar det totala antalet sidor som används av användarobjekt och det totala utrymmet som används av användarobjekt i tempdb.
USE tempdb;
GO
SELECT
SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count) * 1.0 / 128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;