Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
W tym temacie opisano, jak używać Transact-SQL do sprawdzania, czy plik bazy danych programu SQL Server jest plikiem rozrzedłym i sprawdzić jego rzeczywiste i maksymalne rozmiary. Pliki rozrzedne, które są funkcją systemu plików NTFS, są używane przez migawki bazy danych programu SQL Server.
Notatka
Podczas tworzenia migawki bazy danych, pliki o zmniejszonej gęstości są tworzone przy użyciu nazw plików w instrukcji CREATE DATABASE. Te nazwy plików są przechowywane w sys.master_files w kolumnie physical_name. W sys.database_files (niezależnie od tego, czy w źródłowej bazie danych, czy w migawce), kolumna physical_name zawsze zawiera nazwy źródłowych plików bazy danych.
Sprawdź, czy plik bazy danych jest plikiem rozrzednym
Na instancji SQL Server:
Wybierz kolumnę is_sparse z sys.database_files w migawce bazy danych lub z sys.master_files. Wartość wskazuje, czy plik jest plikiem rozrzednym w następujący sposób:
1 = Plik jest plikiem rozrzednym.
0 = Plik nie jest plikiem rozrzednym.
Znajdowanie rzeczywistego rozmiaru pliku rozrzednego
Notatka
Pliki rozrzedzone rosną w przyrostach o rozmiarze 64 kilobajtów (KB); w związku z tym rozmiar pliku rozrzednego na dysku jest zawsze wielokrotność 64 KB.
Aby wyświetlić liczbę bajtów, z których obecnie korzysta każdy rzadki plik migawki, wykonaj zapytanie kolumny size_on_disk_bytes w dynamicznym widoku zarządzania serwera SQL sys.dm_io_virtual_file_stats.
Aby wyświetlić miejsce na dysku używane przez plik rozrzedzany, kliknij prawym przyciskiem myszy plik w systemie Microsoft Windows, kliknij przycisk Właściwościi przyjrzyj się wartości Rozmiar na dysku.
Dowiedz się więcej o maksymalnym rozmiarze pliku rozrzednego
Maksymalny rozmiar, do którego może rosnąć plik rzadki, to rozmiar odpowiedniego źródłowego pliku bazy danych w momencie tworzenia migawki. Aby dowiedzieć się więcej o tym rozmiarze, możesz użyć jednej z następujących alternatyw:
Przy użyciu wiersza polecenia systemu Windows:
Użyj poleceń systemu Windows dir.
Wybierz plik rzadki, otwórz okno dialogowe właściwości w systemie Windows i sprawdź wartość rozmiaru.
Na instancji SQL Server:
Wybierz kolumnę rozmiaru z sys.database_files w migawce bazy danych lub z sys.master_files. Wartość rozmiaru kolumny odzwierciedla maksymalną ilość miejsca na stronach SQL, których migawka może kiedykolwiek używać; ta wartość jest odpowiednikiem pola Rozmiar systemu Windows, z wyjątkiem tego, że jest reprezentowana pod względem liczby stron SQL w pliku; rozmiar w bajtach to:
( liczba_stron * 8192)
Przykład
Poniższy skrypt pokaże rozmiar dysku w kilobajtach dla każdego pliku rozrzedzonego. Skrypt pokaże również maksymalny rozmiar w megabajtach, do którego może rosnąć rozrzedzony plik. Wykonaj skrypt Transact-SQL w programie SQL Server Management Studio.
SELECT DB_NAME(sd.source_database_id) AS [SourceDatabase],
sd.name AS [Snapshot],
mf.name AS [Filename],
size_on_disk_bytes/1024 AS [size_on_disk (KB)],
mf2.size/128 AS [MaximumSize (MB)]
FROM sys.master_files mf
JOIN sys.databases sd
ON mf.database_id = sd.database_id
JOIN sys.master_files mf2
ON sd.source_database_id = mf2.database_id
AND mf.file_id = mf2.file_id
CROSS APPLY sys.dm_io_virtual_file_stats(sd.database_id, mf.file_id)
WHERE mf.is_sparse = 1
AND mf2.is_sparse = 0
ORDER BY 1;
Zobacz też
Migawki bazy danych (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)