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 :

[MS SQL2005]Causes possibles d'un index HS


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut [MS SQL2005]Causes possibles d'un index HS
    Bonjour,

    J'ai un index non cluster sur 3 champs d'une table.
    Cet index ne fonctionnait plus (HS) mais toujours présent.

    J'ai fait un alter reorganize. aucun effet. L'index n'était pas fragmenté.
    Je l'ai supprimé et recréer, et la il est redevenu OK.

    Qu'est ce qui peut rendre HS un index ?

    Merci

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Qu'appeles-tu HS ?

    Est-ce que cet index était désactivé ?

    ++

  3. #3
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    Merci pour votre réponse.

    Est-ce que cet index était désactivé ?
    HS ou désactivé, effectivement, je n'ai pas pensé à vérifier si l'index était disable !!
    Je ne vois pas pas pourquoi un traitement aurait déactivé cet index, et il n'y a pas eu de mise à niveau du moteur, mais c'est une possibilité...

    Le symptôme était le suivant : temps de requête : 8 min, après réorganisation : 8 min, après re-création : 1 sec

  4. #4
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Pour réactiver un index il faut de toute façon le reconstruire donc il y a des chances que ce soit cela mais bon sans réelle certitude :-) . Le problème est l'air d'être réglé de toute façon.

    EDIT : Tu as parlé de réorganisation d'index dans le 1er post donc non on peut affirmer que l'index n'était pas désactivé à ce moment là à moins que tu aies eu un message d'erreur pendant cette opération. Il se peut maintenant que l'index était beaucoup trop fragmenté ou les statistiques associées n'étaient pas assez à jour pour que être utilisé par le moteur d'exécution. Le fait de reconstruire l'index supprime la fragmentation et met à jour les statistiques alors que la réorganisation d'index réduit partiellement la fragmentation en fonction de son taux mais ne met pas à jour les statistiques.

    ++

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 010
    Billets dans le blog
    6
    Par défaut
    les index comme les tables se fragmentent. Les statistiques des index sont calculées lors d'une reconstruction, pas lors d'une défragmentation.
    Si aucun plan de maintenance n'a prévu soit :
    • la reconstruction
    • le recalculs des statistiques

    de manière régulière (au minimum une fois par mois, mais quotidien c'est encore mieux) alors l'optimiseur peut considérer cet index comme inutilisable pour établir son plan de requête car il ne peut se fier à des statistiques trop "vieilles".
    Un peu comme si on établissait le budget de la nation avec la démographie des années 60 !!! - c'est pourquoi on fait de recensements....

    Pour connaître la date du dernier calculs des stats, vous pouvez faire la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT OBJECT_NAME(object_id) AS table_name, *, 
           STATS_DATE(object_id, stats_id)
    FROM sys.stats
    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/ * * * * *

  6. #6
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    Bonjour, merci pour vos reponse,
    Le probleme est revenu hier soir !!!

    - l'index n'est pas desactivé.
    -Il y a bien un plan de maintenance hebdomadaire qui reconstruit les index et met à jour les stats.

    Avec la requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT OBJECT_NAME(object_id) AS table_name, *, 
           STATS_DATE(object_id, stats_id)
    FROM sys.stats
    Je vois que la date de mise à jour des stats pour cet index est 2012-07-03 12:06:30.640 soit la date à laquelle je l'ai reconstruit manuellement) et la précédente 2012-07-01 00:43:30.430 (soit la date du plan de maintenance)


    Y'aurait-il des pistes d'analyse pour comprendre ce qui se passe ? avant que je le reconstruise

Discussions similaires

  1. [Disque Dur] Disques durs qui tombent à la chaine. cause possible?
    Par joora dans le forum Composants
    Réponses: 10
    Dernier message: 19/09/2013, 13h16
  2. Réponses: 6
    Dernier message: 30/11/2010, 20h31
  3. TKPROF écrats entre cpu et elapsed, causes possibles ?
    Par neo.51 dans le forum Administration
    Réponses: 3
    Dernier message: 25/11/2009, 19h03
  4. pb: je n'arrive plus à cliquer à cause d'un z-index
    Par romaint13 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 13/11/2007, 13h29
  5. Réponses: 17
    Dernier message: 31/08/2005, 17h03

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