Sdílet prostřednictvím


Zobrazení velikosti zhuštěného souboru snímku databáze (Transact-SQL)

platí pro:SQL Server

Toto téma popisuje, jak pomocí Transact-SQL ověřit, že je soubor databáze SQL Serveru zhuštěný a jak zjistit jeho skutečnou a maximální velikost. Řídké soubory, které jsou funkcí systému souborů NTFS, používají snímky databáze SQL Serveru.

Poznámka

Během vytváření snímku databáze se řídké soubory vytvářejí pomocí názvů souborů v příkazu CREATE DATABASE. Tyto názvy souborů jsou uloženy v sys.master_files ve sloupci physical_name. Ve sys.database_files (ať už ve zdrojové databázi nebo snímku) sloupec physical_name vždy obsahuje názvy zdrojových souborů databáze.

Ověření, že soubor databáze je zhuštěný soubor

  1. Na instanci SQL Serveru:

    Vyberte sloupec is_sparse buď ze sys.database_files ve snímku databáze, nebo ze sys.master_files. Hodnota určuje, zda je soubor řídkým souborem, následujícím způsobem:

    1 = Soubor je zhuštěný soubor.

    0 = Soubor není zhuštěný soubor.

Zjištění skutečné velikosti řídkého souboru

Poznámka

Zhuštěné soubory rostou o 64 kilobajtů (KB) přírůstky; velikost zhuštěného souboru na disku je tedy vždy násobkem 64 kB.

Pokud chcete zobrazit počet bajtů, které jednotlivé řídké soubory snímku aktuálně používají na disku, zadejte dotaz na sloupec size_on_disk_bytes zobrazení dynamické správy SQL Serveru sys.dm_io_virtual_file_stats.

Pokud chcete zobrazit místo na disku používané řídkým souborem, klikněte pravým tlačítkem myši na soubor v systému Microsoft Windows, klikněte na Vlastnostia podívejte se na hodnotu Velikost na disku.

Zjištění maximální velikosti zhuštěného souboru

Maximální velikost, do které může řídký soubor vyrůst, odpovídá velikosti zdrojového souboru databáze v době vytvoření snímku. Pokud chcete zjistit tuto velikost, můžete použít jednu z následujících alternativ:

  • Pomocí příkazového řádku systému Windows:

    1. Použijte příkazy Windows dir.

    2. Vyberte řídký soubor, otevřete dialogové okno Vlastnosti v systému Windows a podívejte se na hodnotu velikosti Velikost.

  • Na instanci SQL Serveru:

    Vyberte sloupec velikosti buď z sys.database_files ve snímku databáze nebo z sys.master_files. Hodnota velikosti sloupci odráží maximální prostor na stránkách SQL, který může snímek kdykoli použít; tato hodnota je ekvivalentní poli Windows Size s tím rozdílem, že je reprezentována z hlediska počtu stránek SQL v souboru; velikost v bajtech je:

    ( počet_stránek * 8192)

Příklad

Následující skript zobrazí velikost disku v kilobajtech pro každý řídký soubor. Skript také zobrazí maximální velikost v megabajtech, na které může růst řídký soubor. Spusťte skript Transact-SQL v aplikaci 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;

Viz také

Snímky databáze (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)