sys.database_files (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Berisi baris per file database seperti yang disimpan dalam database itu sendiri. Ini adalah tampilan per database.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
| file_id | int | ID file dalam database. |
| file_guid | pengidentifikasi unik | GUID untuk file. NULL = Database ditingkatkan dari versi SQL Server yang lebih lama (Valid untuk SQL Server 2005 dan yang lebih lama). |
| jenis | tinyint | Jenis file: 0 = Baris 1 = Log 2 = ALIRAN FILE 3 = Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. 4 = Teks lengkap |
| type_desc | nvarchar(60) | Deskripsi jenis file: ROWS LOG FILESTREAM TEKS PENUH |
| data_space_id | int | Nilainya bisa 0 atau lebih besar dari 0. Nilai 0 mewakili file log database, dan nilai yang lebih besar dari 0 mewakili ID grup file tempat file data ini disimpan. |
| nama | nama sysname | Nama logika file dalam database. |
| physical_name | nvarchar(260) | Nama file sistem operasi. Jika database dihosting oleh grup ketersediaan replika sekunder yang dapat dibaca, physical_name menunjukkan lokasi file database replika utama. Untuk lokasi file yang benar dari database sekunder yang dapat dibaca, kueri sys.sysaltfiles. |
| state | tinyint | Status file: 0 = ONLINE 1 = MEMULIHKAN 2 = MEMULIHKAN 3 = RECOVERY_PENDING 4 = TERSANGKA 5 = Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. 6 = OFFLINE 7 = DEFUNCT |
| state_desc | nvarchar(60) | Deskripsi status file: ONLINE MEMULIHKAN MEMULIHKAN RECOVERY_PENDING TERSANGKA OFFLINE MATI Untuk informasi selengkapnya, lihat Status File. |
| ukuran | int | Ukuran file saat ini, dalam halaman 8-KB. 0 = Tidak berlaku Untuk rekam jepret database, ukuran mencerminkan ruang maksimum yang pernah digunakan rekam jepret untuk file. Untuk kontainer grup file FILESTREAM, ukuran mencerminkan ukuran kontainer yang digunakan saat ini. |
| max_size | int | Ukuran file maksimum, dalam halaman 8 KB: 0 = Tidak ada pertumbuhan yang diizinkan. -1 = File akan bertambah sampai disk penuh. 268435456 = File log akan tumbuh hingga ukuran maksimum 2 TB. Untuk kontainer grup file FILESTREAM, max_size mencerminkan ukuran maksimum kontainer. Perhatikan bahwa database yang ditingkatkan dengan ukuran file log tak terbatas akan melaporkan -1 untuk ukuran maksimum file log. Dalam Azure SQL Database, jumlah nilai max_size untuk semua file data mungkin kurang dari ukuran data maksimum untuk database. Gunakan DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') untuk menentukan ukuran data maksimum. |
| Pertumbuhan | int | 0 = Ukuran file tetap dan tidak akan bertambah. >0 = File akan tumbuh secara otomatis. Jika is_percent_growth = 0, kenaikan pertumbuhan berada dalam satuan halaman 8 KB, dibulatkan ke 64 KB terdekat. Jika is_percent_growth = 1, kenaikan pertumbuhan dinyatakan sebagai persentase angka keseluruhan. |
| is_media_read_only | bit | 1 = File berada di media baca-saja. 0 = File ada di media baca-tulis. |
| is_read_only | bit | 1 = File ditandai baca-saja. 0 = File ditandai sebagai baca/tulis. |
| is_sparse | bit | 1 = File adalah file jarang. 0 = File bukan file jarang. Untuk informasi selengkapnya, lihat Menampilkan Ukuran File Jarang dari Rekam Jepret Database (SQL Transact). |
| is_percent_growth | bit | 1 = Pertumbuhan file adalah persentase. 0 = Ukuran pertumbuhan absolut di halaman. |
| is_name_reserved | bit | 1 = Nama file yang dihilangkan (nama atau physical_name) hanya dapat digunakan kembali setelah pencadangan log berikutnya. Ketika file dihilangkan dari database, nama logis tetap dalam keadaan dicadangkan hingga cadangan log berikutnya. Kolom ini hanya relevan di bawah model pemulihan penuh dan model pemulihan yang dicatat secara massal. |
| create_lsn | numerik(25,0) | Nomor urutan log (LSN) tempat file dibuat. |
| drop_lsn | numerik(25,0) | LSN tempat file dihilangkan. 0 = Nama file tidak tersedia untuk digunakan kembali. |
| read_only_lsn | numerik(25,0) | LSN tempat grup file yang berisi file diubah dari baca/tulis menjadi baca-saja (perubahan terbaru). |
| read_write_lsn | numerik(25,0) | LSN di mana grup file yang berisi file diubah dari baca-saja menjadi baca/tulis (perubahan terbaru). |
| differential_base_lsn | numerik(25,0) | Dasar untuk pencadangan diferensial. Tingkat data yang diubah setelah LSN ini akan disertakan dalam cadangan diferensial. |
| differential_base_guid | pengidentifikasi unik | Pengidentifikasi unik cadangan dasar tempat pencadangan diferensial akan didasarkan. |
| differential_base_time | datetime | Waktu yang sesuai dengan differential_base_lsn. |
| redo_start_lsn | numerik(25,0) | LSN di mana roll forward berikutnya harus dimulai. Adalah NULL kecuali status = RESTORING atau state = RECOVERY_PENDING. |
| redo_start_fork_guid | pengidentifikasi unik | Pengidentifikasi unik fork pemulihan. First_fork_guid cadangan log berikutnya yang dipulihkan harus cocok dengan nilai ini. Ini mewakili status file saat ini. |
| redo_target_lsn | numerik(25,0) | LSN di mana roll forward online pada file ini dapat berhenti. Adalah NULL kecuali status = RESTORING atau state = RECOVERY_PENDING. |
| redo_target_fork_guid | pengidentifikasi unik | Fork pemulihan tempat file dapat dipulihkan. Dipasangkan dengan redo_target_lsn. |
| backup_lsn | numerik(25,0) | LSN dari data terbaru atau cadangan diferensial file. |
Catatan
Saat Anda menjatuhkan atau membangun kembali indeks besar, atau menghilangkan atau memotong tabel besar, Mesin Database menangguhkan dealokasi halaman aktual, dan kunci terkaitnya, hingga setelah transaksi diterapkan. Operasi penghilangan yang ditangguhkan tidak segera melepaskan ruang yang dialokasikan. Oleh karena itu, nilai yang dikembalikan oleh sys.database_files segera setelah menghilangkan atau memotong objek besar mungkin tidak mencerminkan ruang disk aktual yang tersedia.
Izin
Membutuhkan keanggotaan dalam peran publik . Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Contoh
Pernyataan berikut mengembalikan nama, ukuran file, dan jumlah ruang kosong untuk setiap file database.
SELECT name, size/128.0 FileSizeInMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0
AS EmptySpaceInMB
FROM sys.database_files;
Temukan contoh kueri menggunakan SQL Database, di Kelola ruang file untuk database di Azure SQL Database. Anda dapat:
- Mengkueri database tunggal untuk informasi ruang penyimpanan.
- Mengkueri kumpulan elastis untuk informasi ruang penyimpanan.
Langkah berikutnya
Pelajari selengkapnya tentang konsep terkait dalam artikel berikut: