Udostępnij za pomocą


sys.database_files (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zawiera wiersz na każdy plik bazy danych, przechowywany w samej bazie danych. To jest widok dla każdej bazy danych.

Nazwa kolumny Typ danych Description
file_id int ID pliku w bazie danych.
file_guid uniqueidentifier GUID dla pliku.

NULL = Baza danych została zaktualizowana z wcześniejszej wersji SQL Server (ważnej dla SQL Server 2005 i wcześniejszych wersji).
type tinyint Typ pliku:

0 = Rzędy
1 = Log
2 = STRUMIEŃ PLIKÓW
3 = Wskazane wyłącznie w celach informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
4 = Pełny tekst
type_desc nvarchar(60) Opis typu pliku:

ROWS
LOG
FILESTREAM
FULLTEXT
data_space_id int Wartość może być równa zero lub większa niż zero. Wartość oznacza 0 plik loga bazy danych, a wartość większa niż zero oznacza identyfikator grupy plików, w której przechowywany jest ten plik danych.
name sysname Logiczna nazwa pliku w bazie danych.
physical_name nvarchar(260) Nazwa pliku systemu operacyjnego. Jeśli baza danych jest hostowana przez czytelną wtórną replikę grupy dostępności, wskazuje physical_name lokalizację pliku pierwotnej repliki. Aby uzyskać poprawne położenie pliku w czytelnej bazie danych wtórnej, zapytaj sys.sysaltfiles.
state tinyint Stan pliku:

0 = ONLINE
1 = RESTORING
2 = RECOVERING
3 = RECOVERY_PENDING
4 = SUSPECT
5 = Zidentyfikowane wyłącznie w celach informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.
6 = OFFLINE
7 = DEFUNCT
state_desc nvarchar(60) Opis stanu pliku:

ONLINE
RESTORING
RECOVERING
RECOVERY_PENDING
SUSPECT
OFFLINE
DEFUNCT
Więcej informacji można znaleźć w artykule File States.
size int Aktualny rozmiar pliku, w stronach o pojemności 8 KB.

0 = Nie ma zastosowania
W przypadku migawki bazy danych rozmiar odzwierciedla maksymalną przestrzeń, jaką migawka może kiedykolwiek wykorzystać dla pliku.
W kontenerach grup plików FILESTREAM rozmiar odzwierciedla aktualnie używany rozmiar kontenera.
max_size int Maksymalny rozmiar pliku, w stronach 8 KB:

0 = Wzrost nie jest dozwolony.
-1 = Plik może rosnąć, aż dysk się zapełni.
268435456 = Plik dziennika może osiągnąć maksymalny rozmiar 2 TB.
Dla kontenerów grup plików FILESTREAM , odzwierciedla max_size maksymalny rozmiar kontenera.
Bazy danych zaktualizowane o nieograniczony rozmiar pliku logu raportującego -1 , aby uzyskać maksymalny rozmiar pliku logu.
W Azure SQL Database suma max_size wartości dla wszystkich plików danych może być mniejsza niż maksymalny rozmiar danych dla bazy danych. Użyj do DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') określenia maksymalnego rozmiaru danych.
growth int 0 = Plik ma stały rozmiar i nie rośnie.

Więcej niż 0 = Plik rośnie automatycznie.
Jeśli = is_percent_growth 0, przyrost wynosi jednostki stron o pojemności 8 KB, zaokrąglone do najbliższych 64 KB.
Jeśli = is_percent_growth 1, wzrost wyrażony jest jako procent liczby całkowitej.
is_media_read_only bit 1 = Plik jest na nośniku tylko do odczytu.

0 = Plik jest na nośniku do odczytu i zapisu.
is_read_only bit 1 = Plik jest oznaczony jako tylko do odczytu.

0 = Plik oznaczony jest jako odczyt/zapis.
is_sparse bit 1 = Plik jest plikiem rzadkim.

0 = Plik nie jest plikiem rzadkim.
Więcej informacji można znaleźć w artykule Zobacz rozmiar rzadkiego pliku migawki bazy danych (Transact-SQL).
is_percent_growth bit 1 = Wzrost pliku to procent.

0 = Bezwzględny rozmiar wzrostu stron.
is_name_reserved bit 1 = Porzucona nazwa pliku (name lub physical_name) jest ponownie używana dopiero po następnej kopii zapasowej logów. Gdy pliki są usuwane z bazy danych, nazwy logiczne pozostają w stanie zarezerwowanym do następnej kopii zapasowej logów. Ta kolumna ma znaczenie tylko w modelu pełnej regeneracji oraz modelu odzysku z rejestrem masowym.
is_persistent_log_buffer bit 1 = Plik logu jest trwałym buforem logów.

0 = Plik nie jest trwałym buforem logu.

Więcej informacji można znaleźć w artykule Dodaj trwały bufor logów do bazy danych.
create_lsn liczbowe (25 0) Numer sekwencyjny logu (LSN), w którym plik został utworzony.
drop_lsn liczbowe (25 0) LSN, w którym plik został porzucony.

0 = Nazwa pliku jest niedostępna do ponownego użycia.
read_only_lsn liczbowe (25 0) LSN, w którym grupa plików zawierająca plik zmieniła się z read/write na read-only (najnowsza zmiana).
read_write_lsn liczbowe (25 0) LSN, w którym grupa plików zawierająca plik zmieniła się z trybu tylko do odczytu na odczyt/zapis (najnowsza zmiana).
differential_base_lsn liczbowe (25 0) Baza do różnicowych kopii zapasowych. Rozszerzenia danych zmienione po tym LSN są uwzględniane w różnicowej kopii zapasowej.
differential_base_guid uniqueidentifier Unikalny identyfikator bazowej kopii zapasowej, na której opiera się różnicowa kopia zapasowa.
differential_base_time datetime Czas odpowiadający .differential_base_lsn
redo_start_lsn liczbowe (25 0) LSN, od którego musi rozpocząć się kolejne przesuwanie do przodu.

Jest chyba NULL że state = RESTORING lub state = RECOVERY_PENDING.
redo_start_fork_guid uniqueidentifier Unikalny identyfikator forka recovery. Następna first_fork_guid kopia zapasowa logów musi odpowiadać tej wartości. To reprezentuje aktualny stan pliku.
redo_target_lsn liczbowe (25 0) LSN, przy którym online roll-forward na tym pliku może się zatrzymać.

Jest chyba NULL że state = RESTORING lub state = RECOVERY_PENDING.
redo_target_fork_guid uniqueidentifier Fork recovery, na którym można odzyskać plik. W połączeniu z .redo_target_lsn
backup_lsn liczbowe (25 0) LSN najnowszych danych lub różnicowej kopii zapasowej pliku.

Uwaga / Notatka

Gdy usuwasz lub odbudowujesz duże indeksy, albo usuwasz lub obcinasz duże tabele, silnik bazy danych odkłada rzeczywiste deallokacje stron i powiązane z nimi blokady do momentu zatwierdzenia transakcji. Operacje zrzutu odroczonego nie uwalniają od razu przydzielonej przestrzeni. Dlatego wartości zwracane bezpośrednio sys.database_files po upuszczeniu lub obcięciu dużego obiektu mogą nie odzwierciedlać rzeczywistej dostępnej przestrzeni na dysku.

Permissions

Wymaga członkostwa w publicznej roli . Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Przykłady

Poniższe polecenie zwraca nazwę, rozmiar pliku oraz ilość wolnej przestrzeni dla każdego pliku bazy danych.

SELECT name, size/128.0 FileSizeInMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 
   AS EmptySpaceInMB
FROM sys.database_files;

Znajdź przykładowe zapytania za pomocą SQL Database, w sekcji Zarządzaj przestrzenią plików dla baz danych w Azure SQL Database. Masz następujące możliwości: