IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

REBUILD index et checkpoint [best practice]


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2018
    Messages : 32
    Par défaut 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

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    le CHECKPOINT est totalement indépendant et dans les versions les plus récentes de SQL Server, par un objectif de temps de récupération.

    Le REBUILD n'est qu'une seule transaction. Un CHECPOINT intermédiaire n'a donc pas d'intérêt

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2018
    Messages : 32
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Le REBUILD n'est qu'une seule transaction. Un CHECPOINT intermédiaire n'a donc pas d'intérêt
    Il n'a pas d’intérêt car si le REBUILD précédent à fait dépasser le seuil de 70%, le transaction log va pouvoir être réécrit ?

    Cordialement,

    Donovan

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Scregneugneuu Voir le message
    Il n'a pas d’intérêt car si le REBUILD précédent à fait dépasser le seuil de 70%, le transaction log va pouvoir être réécrit ?

    Cordialement,

    Donovan
    En mode de récupération simple oui.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2018
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2018
    Messages : 32
    Par défaut
    D'accord, merci pour la confirmation

    Si on a un REBUILD index qui a lieu, les entrées de log sont d'abord dans le Log Buffer et au moment du checkpoint, elles vont être ajoutées dans le transaction log.
    Si on a 200Gb d'entrées dans le Log Buffer, ca fera 200Gb à entrer sur le disque, faire des checkpoints pendant le REBUILD ne permettrait pas de faire descendre les entrées de log par 10Gb (par exemple) et donc limiter le grossissement du transaction log puisqu'au prochain checkpoint, seulement 10Gb descendrons et on indiquera qu'il peut réutiliser les anciennes portions du transaction log ?

    Cordialement,

    Donovan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Best practices pour les query / index server
    Par Max dans le forum SharePoint
    Réponses: 3
    Dernier message: 08/12/2008, 09h40
  2. [Ora 9.2] Rebuild index et move tablespace
    Par scornille dans le forum Oracle
    Réponses: 1
    Dernier message: 03/02/2006, 00h41
  3. Rebuild Index
    Par jokos2000 dans le forum SQL
    Réponses: 9
    Dernier message: 11/10/2005, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo