REBUILD index et checkpoint [best practice]
Bonjour à tous,
J'ai lu que le transaction log en mode SIMPLE faisait un checkpoint à 70% de son remplissage pour pouvoir réécrire dessus et ainsi éviter de faire croitre sa taille outre mesure.
J'imagine le cas suivant avec les checkpoint auto à 70% :
On a un REBUILD en cours, le REBUILD fait croitre le transaction log, de 100GB à 150GB par exemple.
Une fois que le REBUILD sera terminé, comme les 70% auront été dépassés, le transaction log va pouvoir être réécrit entièrement et le prochain REBUILD ne fera plus augmenter sa taille, sauf s'il a besoin de 200Gb par exemple, c'est bien ça ?
Dans le cadre d'un job qui fait du REBUILD index par index, est-ce que le checkpoint sera fait à la fin du job ou bien tous les 70% et donc potentiellement entre chaque REBUILD ?
Si mon résonnement au dessus est correct, est-ce qu'il n'est pas possible de lancer un checkpoint manuel durant un REBUILD pour ainsi ne plus faire croitre le transaction log ?
Il me semble que lorsqu'un checkpoint est déclenché (auto ou manuel), il est placé en file d'attente et attend d'être joué, l'idée serait par exemple d'avoir un checkpoint manuel toutes les 10 minutes et ainsi faire en sorte que le transaction log n'est pas besoin de croitre durant le REBUILD d'un index.
Est-ce qu'il y a des best practice sur le REBUILD des index pour éviter d'avoir des transactions logs de 900Gb ? :
Par exemple, faire des REBUILD index par index car le REBUILD ALL est considéré comme une seule transaction et donc le checkpoint aura lieu à la fin ce qui causera un grossissement du transaction log durant la transaction.
Par avance, merci pour vos retours.
Cordialement,
Donovan