La trace SQL Profiler par défaut permet de retrouver les grossissements automatiques des fichiers de toutes les bases de données hébergées par une instance SQL Server.
Voyons comment retrouver ces événements :
De nombreux grossissements automatiques des fichiers de la base de données peuvent indiquer :
– que les fichiers de la base de données ont été mal taillés lors de la création de la base de données
– que l’incrément choisi pour le grossissement automatique est trop faible (par défaut c’est 1MB pour un fichier de données !)
– que des transactions (comme des recréations d’index), ou un changement d’un module SQL ou dans l’application supportée par la base de données génèrent beaucoup de données, et envisager des corrections.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ------------------------------- -- Nicolas Souquet - 30/03/2011 ------------------------------- -- Recherche de l'UNC du fichier de trace par défaut DECLARE @trace_file_path nvarchar(260) SELECT @trace_file_path = path FROM sys.traces WHERE id = 1 -- identifiant de la trace par défaut -- Extraction des données SELECT DatabaseName , FileName , HostName , ApplicationName , SessionLoginName , Duration , StartTime , EndTime FROM sys.fn_trace_gettable (@trace_file_path, DEFAULT) WHERE EventClass IN (92, 93) -- Evénements "Data File Auto Grow" et "Log File Auto Grow" --AND DatabaseName = DB_NAME() -- Pour retrouver les grossissements automatiques de fichiers pour la base de données courante |
On peut trouver la liste des événements et leur identifiant dans la documentation de la procédure stockée sp_trace_setevent.
J’ai utilisé cette procédure dans le tutoriel Création de fichiers de trace SQL Server Profiler côté serveur
On pourra trouver l’espace disque occupé par les fichiers, et l’espace libre dans ceux-ci.
Bonne gestion de fichiers !
ElSüket
Merci Mikedavem
Il faudra attendre la prochaine version de SQL Server pour pouvoir auditer cela à l’aide des événements étendus
@++
Lut
Billet intéressant. Je me permets de compléter .. Avec cette méthode on est obligé d’avoir une trace en continue pour pouvoir détecter un éventuel grossissement de fichier. J’avais un client qui voulait pouvoir détecter ces grossissements uniquements quand ceux-ci se produisent.
On peut également passer une des méthodes (parmi tant d’autres) qui permet de faire ceci :
http://blog.developpez.com/mikedavem/p8763/sql-server-2005/sql/audit-des-autogrow-de-fichiers-de-bases/#more8763
++