Partager via


Espace disque utilisé par le journal des transactions pour les opérations d'indexation

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric

Les opérations d'index à grande échelle peuvent générer des chargements de données volumineux susceptibles de saturer le journal des transactions rapidement. Pour vous assurer que l’opération d’index peut être restaurée, le journal des transactions ne peut pas être tronqué tant que l’opération d’index n’est pas terminée. toutefois, le journal peut être sauvegardé pendant l’opération d’index. Par conséquent, le journal des transactions doit posséder suffisamment de place pour stocker les transactions de l'opération d'index et toutes les transactions utilisateur concurrentes qui interviennent pendant celle-ci.

Cela concerne à la fois les opérations d'index hors ligne et les opérations d'index en ligne. Étant donné que les tables sous-jacentes ne sont pas accessibles pendant une opération d’index hors connexion, il peut y avoir peu de transactions utilisateur et le journal peut ne pas croître aussi rapidement. Les opérations d’index en ligne n’empêchent pas l’activité utilisateur simultanée, par conséquent, les opérations d’index en ligne à grande échelle combinées avec des transactions utilisateur simultanées importantes peuvent entraîner une croissance continue du journal des transactions sans option pour tronquer le journal.

Recommandations

Lorsque vous exécutez des opérations d'index à grande échelle, tenez compte des recommandations suivantes :

  1. Vérifiez que le journal des transactions est sauvegardé et tronqué avant d’exécuter des opérations d’index à grande échelle en ligne, et que le journal dispose d’un espace suffisant pour stocker l’index projeté et les transactions utilisateur.

  2. Envisagez de régler l’option SORT_IN_TEMPDB sur ON pour l’opération d’indexation. Cela permet de séparer les transactions d'index des transactions utilisateur concurrentes. Les transactions d’index sont stockées dans le tempdb journal des transactions et les transactions utilisateur simultanées sont stockées dans le journal des transactions de la base de données utilisateur. Cela permet de tronquer le journal des transactions de la base de données utilisateur pendant l’opération d’index si nécessaire. En outre, si le tempdb journal ne se trouve pas sur le même disque que le journal de base de données utilisateur, les deux journaux ne sont pas concurrents pour le même espace disque.

    Remarque

    Vérifiez que la base de données et le tempdb journal des transactions disposent d’un espace disque suffisant pour gérer l’opération d’index. Le tempdb journal des transactions ne peut pas être tronqué tant que l’opération d’index n’est pas terminée.

  3. Utilisez un mode de récupération de base de données qui permet une journalisation minimale de l'opération d'index. Cela peut réduire la taille du journal de bord et empêcher le journal de bord de saturer l'espace de journalisation.

  4. N’exécutez pas l’opération d’index en ligne dans une transaction explicite. Le journal n’est pas tronqué tant que la transaction explicite n’est pas terminée.