Wyświetlanie rozmiaru pliku rzadkiego w migawce bazy danych (Transact-SQL)

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

  1. 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:

    1. Użyj poleceń systemu Windows dir.

    2. 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;