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


sys.allocation_units (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az adatbázis minden foglalási egységéhez tartalmaz egy sort.

Oszlop név Adattípus Description
allocation_unit_id bigint A foglalási egység azonosítója. Az adatbázison belül egyedi.
típus tinyint A foglalási egység típusa:

0 = Eldobott

1 = Soron belüli adatok (minden adattípus, kivéve a LOB adattípusokat)

2 = Nagyméretű objektumadatok (LOB) (szöveg, ntext, kép, xml, nagy értéktípusok és felhasználó által definiált CLR-típusok)

3 = Sorátfolyási adatok
type_desc nvarchar(60) A foglalási egység típusának leírása:

CSÖKKENT

IN_ROW_DATA

LOB_DATA

ROW_OVERFLOW_DATA
container_id bigint A foglalási egységhez társított tároló azonosítója.

Ha egy sorcentrikus indexbe írja be az = 1 vagy 3 értéket, container_id = sys.partitions.hobt_id.

Ha oszlopcentrikus indexbe írja be az = 1 vagy 3 értéket, container_id = sys.column_store_row_groups.delta_store_hobt_id.

Ha a típus 2, akkor container_id = sys.partitions.partition_id.

0 = Halasztott csökkenésre megjelölt foglalási egység
data_space_id int Annak a fájlcsoportnak az azonosítója, amelyben ez a foglalási egység található.
total_pages bigint A foglalási egység által lefoglalt vagy fenntartott lapok teljes száma.
used_pages bigint A ténylegesen használatban lévő lapok száma.
data_pages bigint Azoknak a használt lapoknak a száma, amelyek a következőt használják:

Soros adatok

LOB adatok

Sortúlterhelési adatok



Vegye figyelembe, hogy a visszaadott érték kizárja a belső indexlapokat és a foglaláskezelési lapokat.

Note

Nagy indexek elvetése vagy újraépítése, nagy táblák vagy partíciók elvetése vagy csonkolása esetén az adatbázismotor a tranzakció véglegesítéséig kezeli a tényleges oldalelosztókat és a hozzájuk tartozó zárolásokat. A késleltetett dobási műveletek nem szabadítják fel azonnal a lefoglalt területet. Ezért előfordulhat, hogy a sys.allocation_units által egy nagy objektum elvetése vagy csonkolása után visszaadott értékek nem feltétlenül tükrözik a tényleges rendelkezésre álló lemezterületet.

Ha engedélyezve van a gyorsított adatbázis-helyreállítás , a rendszer az objektum méretétől függetlenül késleltetett elvetést használ.

Permissions

A nyilvános szerepkör tagságát igényli. További információ: Metaadatok láthatóságának konfigurációja.

Examples

A foglalási egység objektuma és típusa által használt terület meghatározása

Az alábbi lekérdezés az adatbázis összes felhasználói tábláját és az egyes helyeken felhasznált területet adja vissza a foglalási egység típusa szerint.

SELECT t.object_id AS ObjectID,
       OBJECT_NAME(t.object_id) AS ObjectName,
       SUM(u.total_pages) * 8 AS Total_Reserved_kb,
       SUM(u.used_pages) * 8 AS Used_Space_kb,
       u.type_desc AS TypeDesc,
       MAX(p.rows) AS RowsCount
FROM sys.allocation_units AS u
JOIN sys.partitions AS p ON u.container_id = p.hobt_id
JOIN sys.tables AS t ON p.object_id = t.object_id
GROUP BY t.object_id,
         OBJECT_NAME(t.object_id),
         u.type_desc
ORDER BY Used_Space_kb DESC,
         ObjectName;

Lásd még:

sys.partitions (Transact-SQL)
objektumkatalógus nézetei (Transact-SQL)
katalógusnézetek (Transact-SQL)