sys.database_files (Transact-SQL)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics yesAnalytics 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:

Langkah berikutnya

Pelajari selengkapnya tentang konsep terkait dalam artikel berikut: