Trouver les derniers grossissements automatiques de fichiers

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 ;)

2 réflexions au sujet de « Trouver les derniers grossissements automatiques de fichiers »

  1. 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

    ++

Laisser un commentaire