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

MS SQL Server Discussion :

Index et statistiques


Sujet :

MS SQL Server

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut Index et statistiques
    Parmis les bonnes pratiques de gestion d'un serveur SQL, il faut que les index soient coorect (défragmenté) et lers statistique à jour.

    Cependant, j'ai quelques questions à ce sujet.

    Il existe un plan de maintenance qui permet de mettre à jour les statistiques et les index. Cependant, cette opération est gourmande en espace disque. La base de données étant en mode de récupération complet, cela fait accroître démesuérement la taille du fichier log.

    Dès lors, pour pallier à ce problème, j'ai mis en place un job qui démargmente uniquement les index fragmentés.

    C'est au niveau des statistiques que j'ai un soucis.

    - Est-ce que la mise à jour d'un index met à jour la statistique associée ?
    - Au niveau paramètre de la base de données, le flag "mise à jour automatique des statistiques" est positionné à ON. Pourtant, certaines statistiques ,ne sont pas à jour. Faut-il alors néanmoins passer par le plan de maintenance consistant à mettre à jour toutes les statistiques ?
    - Au niveau paramètre de la base de données, faut-il mettre à jour les statistiques en temps réel ou de manière asynchrone ?

    - Est-ce que le mode de récupération BULK LOGGED me permettrait d'échapper à l'inconvéniant de l'accroissement du log pendant la phase de défragmentation des bases de données ?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Bon, pour le mode BULK LOGGED, il y a une réponse sur ce site.

    http://blog.developpez.com/mikedavem...ode-de-recupe/

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    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 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    1) statistiques : elles sont recalculées lorsque :
    1.1 - vous faites une opération de reconstruction d'index (REBUILD) mais pas de défragmentation (DEFRAG, REORGANIZE)
    1.2 - vous avez mis le paramètre de base de données AUTO_UPDATE_STATISTICS à ON, lorsqu'une demande de plan pouvant concerner cette statistique se rend compte de son obsolescence (seuil atteint)
    1.3 - vous avez mis le paramètre de base de données AUTO_UPDATE_STATISTICS_ASYNC à ON (version Enterprise uniquement), lorsque le seuil d'obsolescence est atteint et qu'il a un ppeu de temps pour le faire (iddle)
    1.4 - Manuellement si vous lancez la commande UPDATE STATISTICS ...

    2) journalisation :
    Les statistiques ne sont jamais journalisées, mais la création d'index oui.
    En mode FULL la commande d'indexation et la totalité de l'arbre d'index sont écrit dans le journal. En mode BULK LOGGED ou SIMPLE seule la commande CREATE INDEX est journalisée mais pas les données ce qui économise énormément le volume du journal.
    Vous pouvez passer d'un mode de journalisation à l'autre par à tout moment par le commande ALTER DATABASE ... SET RECOVERY { SIMPLE, BULK_LOGGED | FULL }

    Enfin, il vaut mieux :
    défragmenter les index si la fragmentation est de plus de 10% et moins de 30,
    reconstruire les index si la fragmentation est de plus de 30%,
    recalculer les stats sur un échentillon lorsque la table est grande (plus de 10000 pages par exemple).


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

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Et enfin utiliser l'option WITH COLUMNS de l'instruction UPDATE STATISTICS sans quoi vous perdez le bénéfice de la reconstruction des index.
    En effet dans ce cas, le taux d'échantillonnage est de 100%.

    Si vous faites un UPDATE STATISTICS sans l'option WITH COLUMNS, toutes les statistiques prennent le même taux d'échantillonnage, qui pour les très grosses tables est faible.

    @++

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Merci pour les info.
    A+

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

Discussions similaires

  1. [2008R2] Gestion des indexes et statistiques
    Par Mothership dans le forum Administration
    Réponses: 6
    Dernier message: 14/03/2013, 12h35
  2. Statistiques des indexs sur tables temporaires
    Par gaboo_bl dans le forum Administration
    Réponses: 3
    Dernier message: 24/07/2009, 17h41
  3. Statistiques et index
    Par libertad1 dans le forum Oracle
    Réponses: 4
    Dernier message: 26/05/2009, 16h16
  4. [9i][Conseils] Statistiques et index
    Par nuke_y dans le forum Oracle
    Réponses: 35
    Dernier message: 25/10/2006, 16h43
  5. Réponses: 3
    Dernier message: 18/11/2005, 13h37

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