Je découvre un certain nombre de bases de données dans mon portefeuille qui ont été créées avec des paramètres de croissance automatique par défaut (soit 1 Mo ou incréments de 10%) qui se sont développées pendant une période de temps prolongée. Si je voulais obtenir une estimation de la quantité de fragmentation externe pour chacun des fichiers de base de données, puis-je obtenir des métadonnées combien de fois la taille d'un fichier de base de données a été modifiée (par croissance automatique ou manuellement)? Pour clarifier, puis-je obtenir des métadonnées l'historique des modifications de fichiers DB pour la durée de vie de la base de données, pas seulement depuis le redémarrage de l'instance?
sql-server
datafile
MattyZDBA
la source
la source
Réponses:
Vous pouvez obtenir des informations sur les événements de croissance automatique à partir de la trace par défaut si elle est activée:
Vous pouvez voir à partir de cela que la trace par défaut a la capture d'événements Auto Data Grow et Log File Auto Grow . Pour voir si la trace par défaut est activée sur cette instance, vous pouvez effectuer les opérations suivantes:
Remarque: il s'agit d'une option de configuration avancée, vous
show advanced options
devez donc définir la valeur 1 pour afficher cette option de configurationsp_configure
. En outre, ces deux événements ne seront pas déclenchés si le fichier a augmenté manuellement .Voici un exemple de requête rapide pour obtenir ces événements:
Et vous pouvez obtenir
<Trace Path>
de la fonction systèmesys.fn_trace_getinfo
:la source