Megosztás a következőn keresztül:


sys.dm_db_file_space_usage (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Minden adatfájlhoz térhasználati adatokat ad vissza az adatbázisban.

Megjegyzés:

Ha ezt az Azure Synapse Analytics vagy az Analytics Platform System (PDW) szolgáltatásból szeretné meghívni, használja a nevet sys.dm_pdw_nodes_db_file_space_usage. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Oszlop név Adattípus Description
database_id smallint Adatbázis-azonosító.

Az Azure SQL Database-ben az értékek egyediek egyetlen adatbázisban vagy rugalmas készletben, de nem logikai kiszolgálón belül.
file_id smallint Fájlazonosító.

file_id A file_idsys.dm_io_virtual_file_stats-ben és a sys.sysfiles fájlazonosítója.
filegroup_id smallint A: SQL Server 2012 (11.x) és újabb verziókra vonatkozik.

Fájlcsoport azonosító.
total_page_count bigint A: SQL Server 2012 (11.x) és újabb verziókra vonatkozik.

Az adatfájl összes oldala.
allocated_extent_page_count bigint A: SQL Server 2012 (11.x) és újabb verziókra vonatkozik.

Az adatfájlban kijelölt kiterjedések összes oldala.
unallocated_extent_page_count bigint Az adatfájl nem kiosztott kiterjedésein lévő oldalak teljes száma.

A kiosztott kiterjedésben nem használt oldalak nincsenek belefoglalva.
version_store_reserved_page_count bigint Az egységes kiterjedésű oldalak teljes száma, amelyet a verzióraktárhoz különítettek. A verzióbolt oldalakat soha nem osztják ki vegyes mértékben.

Az IAM oldalak nincsenek benne, mert mindig vegyes mértékben vannak kijelölve. A PFS oldalakat is belevonják, ha egységes mértékben vannak kiosztva.

További információért lásd sys.dm_tran_version_store (Transact-SQL).
user_object_reserved_page_count bigint Az adatbázisban egységes kiterjedésű oldalak teljes száma. A kiosztott területről származó használatlan oldalak is beleszámítanak a számlálásba.

Az IAM oldalak nincsenek benne, mert mindig vegyes mértékben vannak kijelölve. A PFS oldalakat is belevonják, ha egységes mértékben vannak kiosztva.

A sys.allocation_units katalógus nézetében található total_pages oszlopot használhatod, hogy visszaadd a felhasználói objektum minden allokációs egységének fenntartott oldalszámát. Azonban az total_pages oszlopban IAM oldalak is találhatók.
internal_object_reserved_page_count bigint A fájl belső objektumainak egységes kiterjedésű oldalainak teljes száma. A kiosztott területről származó használatlan oldalak is beleszámítanak a számlálásba.

Az IAM oldalak nincsenek benne, mert mindig vegyes mértékben vannak kijelölve. A PFS oldalakat is belevonják, ha egységes mértékben vannak kiosztva.

Nincs katalógusnézet vagy dinamikus menedzsment objektum, amely minden belső objektum oldalszámát adja vissza.
mixed_extent_page_count bigint A fájlban vegyes kiterjedésű és kiosztatlan oldalak teljes száma. A vegyes kiterjedések különböző objektumokhoz rendelt oldalakat tartalmaznak. Ez a szám tartalmazza az összes IAM oldalt a fájlban.
modified_extent_page_count bigint A következőkre vonatkozik: SQL Server 2016 (13.x) SP2 és újabb verziók.

Az utolsó teljes adatbázis-mentés óta módosított oldalak száma a fájl kijelölt kiterjedésében. A módosított oldalszám segítségével nyomon követhetjük az adatbázisban történt differenciális változások számát az utolsó teljes mentés óta, hogy eldöntsük, szükséges-e differenciális mentés.
pdw_node_id int A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)

Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található.
distribution_id int A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)

Az eloszláshoz tartozó egyedi numerikus azonosító.

Megjegyzések

Az oldalszám mindig a terjedelem szintjén van. Ezért az oldalszám értékei mindig nyolc szorzatúak. Azok a kiterjedések, amelyek tartalmazzák a Global Allocation Map (GAM) és a Shared Global Allocation Map (SGAM) oldalát, egységes kiterjedésekkel rendelkeznek. Ezek nincsenek benne a korábban leírt oldalszámban. A lapokról és a mértékekről további információt a Pages and Extents Architektúra útmutatójában talál.

A jelenlegi verzió áruház tartalma sys.dm_tran_version_store-ben van. A verziótároló oldalakat a fájl szintjén követik, nem az ülés- és feladatszinten, mert globális erőforrások. Egy session generálhat verziókat, de a verziókat nem lehet eltávolítani a session végén. A verzió tároló tisztításának figyelembe kell vennie a leghosszabb ideig futó tranzakciót, amelyhez hozzáférésre van szükség. A verziótároló tisztításához kapcsolódó leghosszabb ideig futó tranzakció a sys.dm_tran_active_snapshot_database_transactions elapsed_time_seconds oszlop megtekintésével fedezhető fel.

Az oszlop gyakori változásai mixed_extent_page_count arra utalhatnak, hogy az SGAM oldalak nagy használata van. Amikor ez megtörténik, sok PAGELATCH_UP várakozási időszakot láthatsz, amikor a várakozási erőforrás egy SGAM oldal. További információért lásd sys.dm_os_waiting_tasks (Transact-SQL),sys.dm_os_wait_stats (Transact-SQL) és sys.dm_os_latch_stats (Transact-SQL) címeket.

Felhasználói objektumok

A következő objektumok találhatók a felhasználói objektum oldalszámlálóiban:

  • Felhasználó által definiált táblák és indexek
  • Rendszertáblák és indexek
  • Globális ideiglenes táblázatok és indexek
  • Helyi ideiglenes táblázatok és indexek
  • Táblaváltozók
  • Táblázatok, amelyek táblázatértékű függvényekben térnek vissza

Belső objektumok

A belső objektumok csak a -ben tempdbvannak. A következő objektumok találhatók a belső objektumoldalszámlálókban:

  • Munkatáblák kurzor- vagy tekercsműveletekhez, valamint ideiglenes nagy objektum (LOB) tárolásához
  • Munkafájlok olyan műveletekhez, mint például hash csatlakozás
  • Futtatások rendezése

Kapcsolati számosságok

Ettől kezdve Kapcsolat
sys.dm_db_file_space_usage.database_id, file_id sys.dm_io_virtual_file_stats.database_id, file_id One-to-one

Permissions

Az SQL Server 2019 (15.x) és korábbi verziók, valamint az SQL Managed Instance esetében engedélyt igényel VIEW SERVER STATE .

SQL Server 2022 (16.x) és újabb verziókban a szerveren VIEW SERVER PERFORMANCE STATE engedélyt kell megadni.

Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.

Példák

Határozd meg a szabad hely mennyiségét tempdb

A következő lekérdezés adja vissza a szabad oldalak teljes számát és a teljes szabad helyet megabájtokban (MB) minden adatfájlban (MB) az összes adatfájlban .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;

Határozd meg, mennyi helyet használ a felhasználói objektumok

A következő lekérdezés adja vissza a felhasználói objektumok által használt oldalak teljes számát és a felhasználói objektumok által használt teljes teret a .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;

Lásd még