sys.allocation_units (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Berisi baris untuk setiap unit alokasi dalam database.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
allocation_unit_id | bigint | ID unit alokasi. Unik dalam database. |
jenis | kecil | Jenis unit alokasi: 0 = Dihilangkan 1 = Data dalam baris (semua jenis data, kecuali jenis data LOB) 2 = Data objek besar (LOB) (teks, ntext, gambar, xml, jenis nilai besar, dan jenis yang ditentukan pengguna CLR) 3 = Data luapan baris |
type_desc | nvarchar(60) | Deskripsi jenis unit alokasi: MENJATUHKAN IN_ROW_DATA LOB_DATA ROW_OVERFLOW_DATA |
container_id | bigint | ID kontainer penyimpanan yang terkait dengan unit alokasi. Jika jenis = 1 atau 3 dalam indeks rowstore container_id = sys.partitions.hobt_id. Jika jenis = 1 atau 3 dalam indeks penyimpan kolom, container_id = sys.column_store_row_groups.delta_store_hobt_id. Jika jenis adalah 2, maka container_id = sys.partitions.partition_id. 0 = Unit alokasi ditandai untuk penurunan yang ditangguhkan |
data_space_id | int | ID grup file tempat unit alokasi ini berada. |
total_pages | bigint | Jumlah total halaman yang dialokasikan atau dicadangkan oleh unit alokasi ini. |
used_pages | bigint | Jumlah total halaman yang benar-benar digunakan. |
data_pages | bigint | Jumlah halaman yang digunakan yang memiliki: Data dalam baris Data LOB Data luapan baris Perhatikan bahwa nilai yang dikembalikan mengecualikan halaman indeks internal dan halaman manajemen alokasi. |
Catatan
Saat Anda menjatuhkan atau membangun kembali indeks besar, menghilangkan tabel besar, atau memotong tabel atau partisi besar, Mesin Database menangguhkan alokasi halaman aktual, dan kunci terkaitnya, hingga setelah transaksi diterapkan. Operasi penurunan yang ditangguhkan tidak segera melepaskan ruang yang dialokasikan. Oleh karena itu, nilai yang dikembalikan oleh sys.allocation_units segera setelah menghilangkan atau memotong objek besar mungkin tidak mencerminkan ruang disk aktual yang tersedia.
Ketika Pemulihan Database Dipercepat diaktifkan, penurunan yang ditangguhkan digunakan terlepas dari ukuran objek.
Izin
Memerlukan keanggotaan dalam peran publik . Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Contoh
Menentukan ruang yang digunakan oleh objek dan jenis unit alokasi
Kueri berikut mengembalikan semua tabel pengguna dalam database dan jumlah ruang yang digunakan di masing-masing, berdasarkan jenis unit alokasi.
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;
Lihat Juga
sys.partitions (Transact-SQL)
Tampilan Katalog Objek (Transact-SQL)
Tampilan Katalog (Transact-SQL)