Pratique SQL Server

Fichiers de base : prévoir la capacité avant autogrowth

Distinguez taille allouée, espace interne et capacité du volume, puis définissez incréments prévisibles et alertes utiles.

Une base peut manquer de place avec un fichier encore petit, ou déclencher une alerte disque alors qu'un gros fichier contient beaucoup d'espace réutilisable. Allocation, utilisation et capacité du système de fichiers sont trois mesures différentes. Il faut les comprendre ensemble avant d'autoriser une nouvelle extension.

Lire correctement les fichiers

La requête montre allocation et pages utilisées dans la base courante. FILEPROPERTY SpaceUsed décrit des pages allouées à l'intérieur du fichier, pas l'espace libre du système ni la taille logique des lignes. Le journal demande des mesures et une analyse de réutilisation séparées.

SELECT name,type_desc,size/128.0 AS AllocatedMB,
 CASE WHEN type=0 THEN FILEPROPERTY(name,'SpaceUsed')/128.0 END AS UsedMB,
 CASE WHEN type=0 THEN (size-FILEPROPERTY(name,'SpaceUsed'))/128.0 END AS InternalFreeMB,
 is_percent_growth,growth,
 CASE WHEN is_percent_growth=0 THEN growth/128.0 END AS FixedGrowthMB,
 max_size
FROM sys.database_files;

Un incrément en pourcentage dépend de la taille actuelle. Dix pour cent d'un petit fichier et dix pour cent de plusieurs téraoctets ne représentent pas le même événement. Un incrément fixe rend la prochaine demande plus prévisible, sans qu'un nombre universel de mégaoctets convienne partout.

Vérifiez séparément la capacité physique. La requête des volumes peut répéter le même volume pour plusieurs fichiers : n'additionnez pas son espace libre plusieurs fois. D'autres bases ou applications peuvent le partager. Avec du stockage virtualisé, l'espace annoncé par le système n'est qu'une couche de capacité.

SELECT f.name,v.volume_mount_point,
 v.total_bytes/1073741824.0 AS VolumeGB,
 v.available_bytes/1073741824.0 AS AvailableGB
FROM sys.database_files AS f
CROSS APPLY sys.dm_os_volume_stats(DB_ID(),f.file_id) AS v;

Garder autogrowth comme réserve

Préallouez le besoin proche et conservez la croissance automatique comme protection contre les erreurs de prévision. Des extensions minuscules fréquentes ajoutent du travail et peuvent interrompre les requêtes. Des extensions énormes peuvent durer davantage et absorber la réserve d'autres fichiers. Choisissez selon croissance observée, durée et capacité disponible.

Données et journal se comportent différemment. L'espace libre interne d'un fichier de données peut servir sans extension physique. Le journal peut rester non réutilisable à cause d'une longue transaction, de sauvegardes de journal manquantes ou d'une autre attente. Ajouter du stockage donne du temps sans corriger cette cause.

L'initialisation instantanée peut réduire le temps d'initialisation des données lorsque applicable. Elle ne crée pas de capacité et ne supprime pas tout le travail. Ne transposez pas son comportement au journal sans tenir compte de version et taille. Mesurez une opération comparable.

Alerter avant la prochaine panne

Surveillez espace interne, réserve du volume, vitesse de croissance, taille maximale et échecs d'extension. Estimez la durée restante en régime habituel et en pointe. Un faible pourcentage sur un grand volume peut suffire ; un fort pourcentage sur un petit volume peut disparaître rapidement.

Ajoutez les opérations planifiées : index, reconstructions, imports et staging peuvent demander davantage que la croissance habituelle. Données, journal et tempdb peuvent consommer simultanément. Vérifier seulement le fichier cible ne suffit donc pas.

Évitez le cycle régulier shrink puis croissance. L'espace rendu après une maintenance peut être immédiatement nécessaire de nouveau, créant du travail et perturbant la préallocation. Réservez cette décision à une baisse durable justifiée.

Comparez prévisions et allocations réelles. Enregistrez durée et impact des extensions, pas seulement leur réussite. L'alerte utile nomme fichier ou volume, prochain incrément et délai disponible. Vérifiez aussi MAXSIZE : cette limite peut bloquer la croissance alors que le volume dispose encore d'espace.

Références techniques: Microsoft Learn: Database files · Microsoft Learn: Volume statistics.

Question sur cet article

Vous avez une question sur ce sujet ?

Expliquez ce que vous évaluez ou le point qui vous bloque. Nous vous répondrons avec une recommandation pratique.

Inquiries are not enabled in this preview.

Poser une question sur cet article