sys.dm_db_file_space_usage (Transact-SQL)
Berlaku untuk: SQL Server Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Mengembalikan informasi penggunaan ruang untuk setiap file data dalam database.
Catatan
Untuk memanggil ini dari Azure Synapse Analytics atau Analytics Platform System (PDW), gunakan nama sys.dm_pdw_nodes_db_file_space_usage. Sintaks ini tidak didukung oleh kumpulan SQL tanpa server di Azure Synapse Analytics.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
database_id | smallint | ID Database. |
file_id | smallint | ID File. file_id memetakan ke file_id di sys.dm_io_virtual_file_stats dan fileid di sys.sysfiles. |
filegroup_id | smallint | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. ID Grup File. |
total_page_count | bigint | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Jumlah total halaman dalam file data. |
allocated_extent_page_count | bigint | Berlaku untuk: SQL Server 2012 (11.x) dan yang lebih baru. Jumlah total halaman dalam jangkauan yang dialokasikan dalam file data. |
unallocated_extent_page_count | bigint | Jumlah total halaman dalam jangkauan yang tidak dialokasikan dalam file data. Halaman yang tidak digunakan dalam jangkauan yang dialokasikan tidak disertakan. |
version_store_reserved_page_count | bigint | Jumlah total halaman dalam jangkauan seragam yang dialokasikan untuk penyimpanan versi. Halaman penyimpanan versi tidak pernah dialokasikan dari tingkat campuran. Halaman IAM tidak disertakan, karena selalu dialokasikan dari tingkat campuran. Halaman PFS disertakan jika dialokasikan dari tingkat yang seragam. Untuk informasi selengkapnya, lihat sys.dm_tran_version_store (Transact-SQL). |
user_object_reserved_page_count | bigint | Jumlah total halaman yang dialokasikan dari tingkat yang seragam untuk objek pengguna dalam database. Halaman yang tidak digunakan dari jangkauan yang dialokasikan disertakan dalam hitungan. Halaman IAM tidak disertakan, karena selalu dialokasikan dari tingkat campuran. Halaman PFS disertakan jika dialokasikan dari tingkat yang seragam. Anda bisa menggunakan kolom total_pages dalam tampilan katalog sys.allocation_units untuk mengembalikan jumlah halaman yang dipesan dari setiap unit alokasi di objek pengguna. Namun, perhatikan bahwa kolom total_pages menyertakan halaman IAM. |
internal_object_reserved_page_count | bigint | Jumlah total halaman dalam jangkauan seragam yang dialokasikan untuk objek internal dalam file. Halaman yang tidak digunakan dari jangkauan yang dialokasikan disertakan dalam hitungan. Halaman IAM tidak disertakan, karena selalu dialokasikan dari tingkat campuran. Halaman PFS disertakan jika dialokasikan dari tingkat yang seragam. Tidak ada tampilan katalog atau objek manajemen dinamis yang mengembalikan jumlah halaman setiap objek internal. |
mixed_extent_page_count | bigint | Jumlah total halaman yang dialokasikan dan tidak dialokasikan dalam jangkauan campuran yang dialokasikan dalam file. Jangkauan campuran berisi halaman yang dialokasikan untuk objek yang berbeda. Jumlah ini mencakup semua halaman IAM dalam file. |
modified_extent_page_count | bigint | Berlaku untuk: SQL Server 2016 (13.x) SP2 dan yang lebih baru. Jumlah total halaman yang dimodifikasi dalam jangkauan file yang dialokasikan sejak pencadangan database lengkap terakhir. Jumlah halaman yang dimodifikasi dapat digunakan untuk melacak jumlah perubahan diferensial dalam database sejak pencadangan penuh terakhir, untuk memutuskan apakah pencadangan diferensial diperlukan. |
pdw_node_id | int | Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW) Pengidentifikasi untuk simpul tempat distribusi ini aktif. |
distribution_id | int | Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW) Id numerik unik yang terkait dengan distribusi. |
Keterangan
Jumlah halaman selalu pada tingkat tertentu. Oleh karena itu, nilai jumlah halaman akan selalu menjadi kelipatan delapan. Jangkauan yang berisi halaman alokasi Peta Alokasi Global (GAM) dan Peta Alokasi Global Bersama (SGAM) dialokasikan sejauh mana. Mereka tidak disertakan dalam jumlah halaman yang dijelaskan sebelumnya. Untuk informasi selengkapnya tentang halaman dan jangkauan, lihat Panduan Arsitektur Halaman dan Jangkauan.
Konten penyimpanan versi saat ini ada di sys.dm_tran_version_store. Halaman penyimpanan versi dilacak pada tingkat file alih-alih tingkat sesi dan tugas, karena halaman tersebut adalah sumber daya global. Sesi dapat menghasilkan versi, tetapi versi tidak dapat dihapus saat sesi berakhir. Pembersihan penyimpanan versi harus mempertimbangkan transaksi terlama yang membutuhkan akses ke versi tertentu. Transaksi terlama yang terkait dengan pembersihan penyimpanan versi dapat ditemukan dengan melihat kolom elapsed_time_seconds di sys.dm_tran_active_snapshot_database_transactions.
Perubahan yang sering di kolom mixed_extent_page_count dapat menunjukkan penggunaan halaman SGAM yang berat. Ketika ini terjadi, Anda mungkin melihat banyak PAGELATCH_UP menunggu di mana sumber daya tunggu adalah halaman SGAM. Untuk informasi selengkapnya, lihat sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL), dan sys.dm_os_latch_stats (Transact-SQL).
Objek Pengguna
Objek berikut disertakan dalam penghitung halaman objek pengguna:
Tabel dan indeks yang ditentukan pengguna
Tabel dan indeks sistem
Tabel dan indeks sementara global
Tabel dan indeks sementara lokal
Variabel tabel
Tabel yang dikembalikan dalam fungsi bernilai tabel
Objek Internal
Objek internal hanya dalam tempdb. Objek berikut disertakan dalam penghitung halaman objek internal:
Tabel kerja untuk operasi kursor atau penampung dan penyimpanan objek besar sementara (LOB)
File kerja untuk operasi seperti gabungan hash
Urutkan eksekusi
Kardinalitas Hubungan
Dari | Untuk | Hubungan |
---|---|---|
sys.dm_db_file_space_usage.database_id, file_id | sys.dm_io_virtual_file_stats.database_id, file_id | One-to-one |
Izin
Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE
izin.
Pada tujuan layanan SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Azure Active Directory, atau keanggotaan dalam ##MS_ServerStateReader##
peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE
pada database, atau keanggotaan dalam ##MS_ServerStateReader##
peran server diperlukan.
Contoh
Menentukan jumlah ruang kosong dalam tempdb
Kueri berikut mengembalikan jumlah total halaman kosong dan total ruang kosong dalam megabyte (MB) yang tersedia di semua file data dalam 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;
Menentukan Jumlah Ruang yang Digunakan oleh Objek Pengguna
Kueri berikut mengembalikan jumlah total halaman yang digunakan oleh objek pengguna dan total ruang yang digunakan oleh objek pengguna dalam 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;