Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
In dit onderwerp wordt beschreven hoe u Transact-SQL gebruikt om te controleren of een SQL Server-databasebestand een sparse-bestand is en om de werkelijke en maximale grootte ervan te achterhalen. Sparse-bestanden, die een functie van het NTFS-bestandssysteem zijn, worden gebruikt door momentopnamen van sql Server-databases.
Notitie
Tijdens het maken van een momentopname van de database worden sparse-bestanden gemaakt met behulp van de bestandsnamen in de instructie CREATE DATABASE. Deze bestandsnamen worden opgeslagen in sys.master_files in de kolom physical_name. In sys.database_files (in de brondatabase of in een momentopname) bevat de kolom physical_name altijd de namen van de brondatabasebestanden.
Controleer of een databasebestand een Sparse-bestand is
Op de instantie van SQL Server:
Selecteer de kolom is_sparse uit sys.database_files in de momentopname van de database of uit sys.master_files. De waarde geeft als volgt aan of het bestand een sparse-bestand is:
1 = Bestand is een sparse-bestand.
0 = Bestand is geen sparse-bestand.
De werkelijke grootte van een Sparse-bestand achterhalen
Notitie
Sparse bestanden groeien in stappen van 64 kilobyte (KB; De grootte van een sparse-bestand op schijf is dus altijd een veelvoud van 64 kB.
Als u het aantal bytes wilt weergeven dat elk sparsebestand van een momentopname momenteel op schijf gebruikt, voert u een query uit op de size_on_disk_bytes kolom van de SQL Server sys.dm_io_virtual_file_stats dynamische beheerweergave.
Als u de schijfruimte wilt weergeven die wordt gebruikt door een sparse-bestand, klikt u met de rechtermuisknop op het bestand in Microsoft Windows, klikt u op eigenschappenen bekijkt u de grootte op de schijf waarde.
De maximale grootte van een Sparse-bestand achterhalen
De maximale grootte waarop een sparse kan groeien, is de grootte van het bijbehorende brondatabasebestand op het moment dat de momentopname is gemaakt. Als u deze grootte wilt leren, kunt u een van de volgende alternatieven gebruiken:
Gebruik de Windows-opdrachtprompt:
Gebruik Windows dir-opdrachten.
Selecteer het sparse file, open het Eigenschappen dialoogvenster in Windows en bekijk de Grootte waarde.
Op het exemplaar van SQL Server:
Selecteer de grootte kolom uit sys.database_files in de momentopname van de database of uit sys.master_files. De waarde van grootte kolom weerspiegelt de maximale ruimte in SQL-pagina's die de momentopname ooit kan gebruiken; deze waarde is gelijk aan het veld Windows Grootte, behalve dat deze wordt weergegeven in termen van het aantal SQL-pagina's in het bestand; de grootte in bytes is:
( aantal_pagina's * 8192)
Voorbeeld
Het volgende script toont de grootte op schijf in kilobytes voor elk sparse-bestand. Het script toont ook de maximale grootte in megabytes waarnaar een sparse-bestand kan groeien. Voer het Transact-SQL script uit in 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;
Zie ook
Database-snapshots (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)