Udostępnij za pośrednictwem


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, 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

  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;

Zobacz też

Migawki bazy danych (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)