SQL 2005: pouvons-nous déterminer dans quelle mesure le travail de maintenance d'index de reconstruction peut augmenter les fichiers journaux de la base de données?

10

Sur SQL Server 2005, si toutes les bases de données sont en mode complet (avec des sauvegardes du journal des transactions toutes les heures), est-il possible de déterminer si la reconstruction de tous les index d'une base de données peut augmenter le fichier journal d'une base de données? Et combien peut-il grandir?

S'il n'y a pas de réponse directe, toutes les directions seraient vraiment appréciées.

Merci d'avance.

Manjot
la source

Réponses:

9

Oui, vous devriez consulter l'excellent livre blanc sur ce sujet bien qu'il se réfère à la reconstruction d'index en ligne, il contient toujours beaucoup de bonnes informations

http://technet.microsoft.com/en-us/library/cc966402.aspx

Si les fichiers journaux augmentent automatiquement, vous pouvez trouver ces informations à l'aide de la trace par défaut une fois l'action terminée.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

--Check if the data and log files auto-growed. Look for tempdb, log files etc.
SELECT 
    gt.ServerName
    , gt.DatabaseName
    , gt.TextData
    , gt.StartTime
    , gt.Success
    , gt.HostName
    , gt.NTUserName
    , gt.NTDomainName
    , gt.ApplicationName
    , gt.LoginName
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in ( 92, 93 ) --'Data File Auto Grow', 'Log File Auto Grow'
ORDER BY StartTime; 
--
Sankar Reddy
la source
7

Il n'est pas seulement possible de détecter si les opérations DDL d'index augmentent le fichier journal, c'est la ligne d'action par défaut. Toutes les opérations d'index sont enregistrées dans une base de données qui utilise le modèle de récupération complète.

Je vous conseille de lire l'article suivant sur MSDN: Déterminer les besoins en espace disque de l'index .

Dans le troisième chapitre - Espace disque du journal des transactions pour les opérations d'indexation de cet article, je citerai:

" Les opérations d'index à grande échelle peuvent générer des charges de données importantes qui peuvent entraîner le remplissage rapide du journal des transactions. Pour vous assurer que l'opération d'indexation peut être annulée, le journal des transactions ne peut pas être tronqué tant que l'opération d'indexation n'est pas terminée. Cependant, le journal peut être sauvegardé pendant l'opération d'indexation. Par conséquent, le journal des transactions doit avoir suffisamment d'espace pour stocker à la fois les transactions d'opération d'indexation et toutes les transactions utilisateur simultanées pendant la durée de l'opération d'indexation.Cela est vrai pour les opérations d'indexation hors ligne et en ligne. Étant donné que les tables sous-jacentes ne sont pas accessibles lors d'une opération d'indexation hors connexion, il peut y avoir peu de transactions utilisateur et le journal peut ne pas augmenter aussi rapidement. Les opérations d'indexation en ligne n'empêchent pas l'activité simultanée des utilisateurs. Par conséquent, les opérations d'indexation en ligne à grande échelle associées à d'importantes transactions simultanées des utilisateurs peuvent entraîner une croissance continue du journal des transactions sans possibilité de tronquer le journal. "

Marian
la source