Notatka
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 tworzone są pliki rzadkie 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;
Treści powiązane
- Migawki bazy danych (SQL Server)
- sys.fn_virtualfilestats (Transact-SQL)
- sys.database_files (Transact-SQL)
- sys.master_files (Transact-SQL)