Dela via


Visa storleken på den glesa filen för en databasögonblicksbild (Transact-SQL)

gäller för:SQL Server

Det här avsnittet beskriver hur du använder Transact-SQL för att verifiera att en SQL Server-databasfil är en gles fil och för att ta reda på dess faktiska och maximala storlekar. Glesa filer, som är en funktion i NTFS-filsystemet, används av SQL Server-databassnapshots.

Notis

När du skapar en ögonblicksbild av databasen skapas glesa filer med hjälp av filnamnen i INSTRUKTIONEN SKAPA DATABAS. Dessa filnamn lagras i sys.master_files i kolumnen physical_name. I sys.database_files (oavsett om det är i källdatabasen eller i en ögonblicksbild) innehåller kolumnen physical_name alltid namnen på källdatabasfilerna.

Kontrollera att en databasfil är en sparse-fil

  1. På instansen av SQL Server:

    Välj kolumnen is_sparse från antingen sys.database_files i databasögonblicksbilden eller från sys.master_files. Värdet anger om filen är en gles fil enligt följande:

    1 = Filen är en gles fil.

    0 = Filen är inte en gles fil.

Ta reda på den faktiska storleken på en sparse-fil

Not

Glesa filer växer i steg om 64 kilobyte (KB). Därför är storleken på en gles fil på disk alltid en multipel på 64 KB.

Om du vill visa antalet byte som varje gles fil i en ögonblicksbild för närvarande använder på disken frågar du kolumnen size_on_disk_bytes i SQL Server sys.dm_io_virtual_file_stats dynamisk hanteringsvy.

Om du vill visa diskutrymmet som används av en gles fil högerklickar du på filen i Microsoft Windows, klickar på Egenskaperoch tittar på värdet Storlek på disken.

Ta reda på den maximala storleken på en sparse-fil

Den maximala storleken som en glesfil kan växa till är storleken på den motsvarande källdatabasfilen vid tidpunkten för ögonblicksbildens skapande. Om du vill lära dig den här storleken kan du använda något av följande alternativ:

  • Användning av kommandotolken i Windows:

    1. Använd kommandon för Windows dir.

    2. Välj den glesa filen, öppna dialogrutan Egenskaper i Windows och titta på värdet Storlek.

  • På instansen av SQL Server:

    Välj storlekskolumnen från antingen sys.database_files i databasögonblicksbilden eller från sys.master_files. Värdet för storlek kolumn återspeglar det maximala utrymmet på SQL-sidor som ögonblicksbilden någonsin kan använda. Det här värdet motsvarar fältet Windows Size, förutom att det representeras när det gäller antalet SQL-sidor i filen. storleken i byte är:

    ( antal_sidor * 8192)

Exempel

Följande skript visar storleken på disken i kilobyte för varje sparse-fil. Skriptet visar också den maximala storleken i megabyte som en gles fil kan växa till. Kör skriptet Transact-SQL i 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;

Se även

Databasögonblicksbilder (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)