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 :

Le recalcul d'index / statistiques génère-t-il des transaction logs ?


Sujet :

Administration SQL Server

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut Le recalcul d'index / statistiques génère-t-il des transaction logs ?
    Bonjour,

    J'ai une question stupide...

    J'ai une base de données configurée en Recovery Mode = Full.

    Hier après-midi, j'ai lancé des traitements assez lourds. Ça a généré plusieurs centaines de Mo de logs (près de 1 Go).
    Normal.

    Ensuite, pendant la nuit, j'ai un script qui recalcul / rebuild les index pollués, et met à jour les statistiques des tables.
    Et là, surprise, j'ai de nouveau des logs qui se sont générés, à peu de chose près la même taille (près de 1 Go).

    Un rebuild d'index génère des logs de transaction ? Pour quelle raison ? Idem pour les statistiques.
    On ne jouit bien que de ce qu’on partage.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Les indexes, mêmes secondaires, sont des pages de données et font partie intégrante de la base de données. Lorsque qu'un index est reconstruit, ces pages de données sont modifiées, ce qui occupe effectivement de la place dans le journal des transactions, comme n'importe quelle commande modifiant l'état de la base.

    Pour les statistiques en revanche, je ne sais pas qu'il est est, mais j'imagine que le fonctionnement reste le même, puisqu'elle font elles aussi partie de la BDD. cependant, le volume reste faible, donc l'impact ne doit pas être très important.

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Ok

    Vu que le contenu d'un index ne change pas le contenu d'une table, je ne pensais pas que ces modifications étaient consignées dans le journal.

    C'est les admins système qui vont être contents, je suis en train de leur pourrir le serveur de sauvegarde (1 log de 1 Go toutes les 10 minutes depuis ce matin gnark gnark gnark… sans oublier les index cette nuit… si ça refait comme hier soir la somme de tous les logs de la journée, ils vont pas être contents )
    On ne jouit bien que de ce qu’on partage.

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    est-ce que le rebuild est fait en ligne ou hors ligne ?


    Sinon, en spécifiant une reconstruction utilisant la tempDB (SORT_IN_TEMPDB = ON), cela réduira l'impact sur le TLog de la base utilisateur.

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    En ligne.
    Le script lance un simple REBUILD sans option complémentaire.

    Pour la TEMPDB, vu qu'elle est partagée entre toutes les bases, et que le script lance le rebuild des index de toutes les bases en même temps... je suis pas certain que tous les faire bosser dans TEMPDB soit la meilleure solution
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Pour les statistiques en revanche, je ne sais pas qu'il est est, mais j'imagine que le fonctionnement reste le même, puisqu'elle font elles aussi partie de la BDD. cependant, le volume reste faible, donc l'impact ne doit pas être très important.
    Les stats sont incluses dans les pages d'index.... Donc journalisées de même !

    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/ * * * * *

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Vu que le contenu d'un index ne change pas le contenu d'une table, je ne pensais pas que ces modifications étaient consignées dans le journal.
    SQL Server journalise TOUT ce qui change l'état de la base : structure comme données :
    Commandes CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, MERGE, TRUNCATE, GRANT, REVOKE....

    Même une commande d'ajout de fichier à une base est journalisée.

    En mode BULK LOADED ou SIMPLE, seules les opérations reproductibles ne sont pas journalisées ;
    • CREATE / ALTER / REBUILD INDEX
    • SELECT ... INTO ...
    • BULK INSERT...


    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/ * * * * *

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    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 : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    est-ce que le rebuild est fait en ligne ou hors ligne ?


    Sinon, en spécifiant une reconstruction utilisant la tempDB (SORT_IN_TEMPDB = ON), cela réduira l'impact sur le TLog de la base utilisateur.
    Aucune influence sur la journalisation. C'est juste pour éviter d'utiliser trop de cache (donc on ne le fait qu'en pleine production sur un index de plusieurs Go).

    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/ * * * * *

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/05/2018, 19h31
  2. Réponses: 2
    Dernier message: 17/09/2015, 15h47
  3. [2000] Index - statistiques
    Par Banzai31 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/03/2015, 23h36
  4. Recalculer l'index via requête sql ?
    Par Stephane_br dans le forum Développement
    Réponses: 8
    Dernier message: 05/02/2014, 14h42

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