Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S'applique à :SQL Server
Cette rubrique décrit comment utiliser Transact-SQL pour vérifier si un fichier de base de données SQL Server est un fichier sparse et déterminer ses tailles réelle et maximale. Les fichiers épars, qui constituent une fonctionnalité du système de fichiers NTFS, sont utilisés par les instantanés de base de données SQL Server.
Remarque
Lors de la création de captures instantanées de base de données, des fichiers épars sont créés en utilisant les noms de fichiers de l’instruction CREATE DATABASE. Ces noms de fichiers sont stockés dans sys.master_files dans la colonne physical_name . Dans sys.database_files (dans la base de données source ou dans l’instantané), la colonne physical_name contient toujours les noms des fichiers de la base de données source.
Vérifier qu'un fichier de base de données est un fichier creux
Sur l’instance de SQL Server :
Sélectionnez la colonne is_sparse soit dans sys.database_files dans l’instantané de la base de données, soit dans sys.master_files. La valeur indique si le fichier est un fichier creux, comme suit :
1 = Le fichier est un fichier creux.
0 = Le fichier n'est pas un fichier creux.
Déterminer la taille réelle d’un fichier clairsemé
Remarque
Les fichiers creux augmentent par incréments de 64 kilo-octets (Ko) ; ainsi, la taille d’un fichier creux sur le disque est toujours un multiple de 64 Ko.
Pour afficher le nombre d’octets qu’utilise actuellement sur le disque chaque fichier épars d’un cliché instantané, interrogez la colonne size_on_disk_bytes de la vue de gestion dynamique SQL Server sys.dm_io_virtual_file_stats.
Pour afficher l’espace disque utilisé par un fichier creux, cliquez avec le bouton droit sur le fichier dans Microsoft Windows, cliquez sur Propriétés et consultez la valeur de Taille sur le disque.
Déterminer la taille maximale d’un fichier creux
La taille maximale qu’un fichier clairsemé peut atteindre est celle du fichier de base de données source correspondant au moment de la création de l’instantané. Pour connaître la taille de ce fichier, utilisez une des méthodes suivantes :
Utilisation de l’invite de commandes de Windows :
Utilisez les commandes dir de Windows.
Sélectionnez le fichier sparse, ouvrez la boîte de dialogue Propriétés dans Windows et regardez la valeur Taille.
Sur l’instance de SQL Server :
Sélectionnez la colonne size soit dans sys.database_files dans l’instantané de la base de données, soit dans sys.master_files. La valeur de la colonne size reflète l'espace maximal que l'instantané peut utiliser en pages SQL. Cette valeur correspond à celle du champ Taille de Windows, sauf qu'elle est exprimée en termes de nombre de pages SQL dans le fichier ; la taille en octets étant :
( nombre_de_pages * 8192)
Exemple
Le script suivant affichera la taille sur le disque en kilo-octets pour chaque fichier creux. Le script affichera également la taille maximale, en mégaoctets, jusqu’à laquelle un fichier creux peut croître. Exécuter le script Transact-SQL dans 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;
Voir aussi
Instantanés de base de données (SQL Server)
sys.fn_virtualfilestats (Transact-SQL)
sys.database_files (Transact-SQL)
sys.master_files (Transact-SQL)