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

Oracle Discussion :

[DBA] : reconstruction d'indexs


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut [DBA] : reconstruction d'indexs
    Bonjour à tous,

    Oracle 9i r2

    Je cherche désespérement une requete me permettant de connaitre mes indexs à rebuilder, et ce à partir de la vue user_indexes.

    J'ai bien trouvé cette requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT NAME, (del_lf_rows_len/lf_rows_len)*100 AS wastage
    FROM index_stats;
    mais elle oblige au prélable dans la session de collecter des nouvelles stats.

    Y'à bien kelk'un qui a çà dans sa valise de dba ????

    Merci d'avance

    @

  2. #2
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170
    Par défaut
    Les stats permettent de connaitre l'état de l'index par contre il est possible d'analiser uniquemenet l'index cible de faire la requête puis de supprimer les index.

    Par contre d'une manière générale l'optimiseur oracle est meilleur en mode cout (avec les stats) qu'en mode rule (sans stats) donc sauf contraintes éditeur il est préférable d'utiliser les stats

  3. #3
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Arturius
    Les stats permettent de connaitre l'état de l'index par contre il est possible d'analiser uniquemenet l'index cible de faire la requête puis de supprimer les index.

    Par contre d'une manière générale l'optimiseur oracle est meilleur en mode cout (avec les stats) qu'en mode rule (sans stats) donc sauf contraintes éditeur il est préférable d'utiliser les stats
    Bonjour Arturius

    Merci de ta réponse, mais je pense que tu n'as pas compris ma question.

    Je cherche à monitorer les indexs de ma base que je dois rebuilder. Ce que je souhaiterai, c'est simplement après la maj des stats (job nocturne quotidien), lancer une requete sur la vue user_indexes d'un schéma de prod pour identifier les indexs qui sont fragmentés à hauteur de 15% par exemple, et donc qu'il faut reconstruire.

    J'ai trouvé cette requete avec la vue index_stats, mais cela ne correspond pas à ce que je recherche.

    De manière générale, comment faites vous pour identifier les indexs qui sont à recontruire ? quelle est la méthode la plus efficace ?

    merci de votre aide

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170
    Par défaut
    les résultats des dbms_stats sur les index sont stockés dans les tables all_indexes, dba_indexes ou user_indexes

  5. #5
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Arturius
    les résultats des dbms_stats sur les index sont stockés dans les tables all_indexes, dba_indexes ou user_indexes
    je le sais tout çà, merci bcq. Ce que je cherche c'est la requete la plus efficace pour identifier mes indexs à rebuilder, après justement une maj des stats d'un schéma

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    pas mieux que ta requête

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170

  8. #8
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Fred_D
    pas mieux que ta requête
    salut fred et merci de ta réponse.

    En effet cette requete fonctionne bien, dans une session après un DBMS_STATS.GATHER_INDEX_STATS

    le pb est que je souhaiterai réaliser la même chose après un dbms_stats.gather_schema_stats pour un schéma en particulier.

    La même procédure pourra être lancé au besoin à d'autres moments, ce pourquoi il faut bien que je m'appuie sur user_indexes

    je creuse .....

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    gather_schema_stats fait également les indexes... je vois pas où est le problème

  10. #10
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Fred_D
    gather_schema_stats fait également les indexes... je vois pas où est le problème

    tout à fait fred
    mon pb est à posteriori d'attaquer user_indexes pour connaitre mes indexs à rebuilder. Dans une autre session à tout moment.

    Et donc pas dans la même session en attaquant index_stats

    si je suis pas assez clair dit le moi

    merci de ton aide

  11. #11
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Arturius
    merci pour ton lien

    j'étais déjà sur une doc de ce type
    je cherche quelque chose de plus simple

  12. #12
    Membre habitué
    Inscrit en
    Septembre 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 142
    Points : 170
    Points
    170
    Par défaut
    Citation Envoyé par PpPool
    tout à fait fred
    mon pb est à posteriori d'attaquer user_indexes pour connaitre mes indexs à rebuilder. Dans une autre session à tout moment.

    Et donc pas dans la même session en attaquant index_stats

    si je suis pas assez clair dit le moi

    merci de ton aide
    user_indexes te donnes les stats du schéma auquel tu es connecté quelque soit la session. si tu calcules les stats des index avec dbms_stats. Quelque soit la session avec laquelle tu te connectes, les données contenues dans user_indexes seront les mêmes pour un schéma donné. Elles ne dépendent pas de la connexion.

    Si tu veux les info d'une autre schéma que celui auquel tu es connecté, utilise all_indexes ou dba_indexes et filtre en fonction du champ owner.

  13. #13
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Arturius
    user_indexes te donnes les stats du schéma auquel tu es connecté quelque soit la session. si tu calcules les stats des index avec dbms_stats. Quelque soit la session avec laquelle tu te connectes, les données contenues dans user_indexes seront les mêmes pour un schéma donné. Elles ne dépendent pas de la connexion.

    Si tu veux les info d'une autre schéma que celui auquel tu es connecté, utilise all_indexes ou dba_indexes et filtre en fonction du champ owner.
    re..je sais tout çà !! on ne se comprend pas

    quel est la requete la plus efficace pour interroger user_indexes pour un schéma donné pour connaitre les indexs à rebuilder ?

    Mon seul pb est celui-ci , aucun pb avec dbms_stats et connaissances des vues

  14. #14
    Membre confirmé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 487
    Points : 455
    Points
    455
    Par défaut
    bonjour,

    question bête:
    Tu cherches des indexs à reconstruire. Mais pourquoi et quel gain attends tu de cela?
    Perso, je ne les reconstruits jamais et n'ai jamais de problèmes avec cela. D'ailleurs Oracle ne le préconise nulle part

  15. #15
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    ça m'étonnerait fort qu'Oracle ne le préconise pas... en effet, le rebuild permet de réorganiser des arbres qui commencent à avoir trop de profondeur

  16. #16
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Il y a pas mal de polémiques à ce sujet: Tom Kyte et Jonathan Lewis sont en général contre (sauf cas particulier) alors qu'on peut trouver de la documentation Oracle qui dit le contraire. Personnellement, je suis plutôt d'accord avec Aline (voir la longue discussion en anglais: http://asktom.oracle.com/pls/ask/f?p...:6601312252730)

  17. #17
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par aline
    bonjour,

    question bête:
    Tu cherches des indexs à reconstruire. Mais pourquoi et quel gain attends tu de cela?
    Perso, je ne les reconstruits jamais et n'ai jamais de problèmes avec cela. D'ailleurs Oracle ne le préconise nulle part
    salut Aline

    Si je ne me trompe pas, Oracle préconise de surveiller l'espace utilisé par les index et de les reconstruire si le taux de gaspillage est de 15/20%

    je peux me tromper, mais il s'agit d'un point à monitorer pour la gestion des performances de la base.

    sinon, mais là je m'écarte un peu du post, je m'intéresse à ce sujet, car je suis en train de travailler pour un client sur la mise en place d'indicateurs généraux de tuning de la base par catégorie :
    - Dimensionnement du cache de tampons
    - Dimensionnement de la SGA
    - Opérations de tri
    ...

    actuellement, je suis sur la partie :' Utilisation des blocs de manière efficace'
    et donc ici 'Monitorer les indexs'

    voili voilou, le pb du comment de toute l'histoire

  18. #18
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Personnellement, j'ai déjà constaté de gros gain d'espace disque et aussi de perf... donc pour moi, ça fait aucun doute, il faut faire des rebuilds régulièrement surtout que ça se fait assez facilement. Quand aux tables, là c'est plus compliqué mais c'est à prévoir aussi

    PS : sur de gros indexes ça permet de réduire la profondeur de l'arbre et donc améliorer les perfs

  19. #19
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    j'ai déjà remarqué que Tom Kytes vouait une comfiance sans borne au LMT mais malheureusement dans les faits c'est pas si simple

    D'ailleurs, il en parle en 2002 alors que c'était pas mal buggé

  20. #20
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par Fred_D
    Personnellement, j'ai déjà constaté de gros gain d'espace disque et aussi de perf... donc pour moi, ça fait aucun doute, il faut faire des rebuilds régulièrement surtout que ça se fait assez facilement. Quand aux tables, là c'est plus compliqué mais c'est à prévoir aussi

    PS : sur de gros indexes ça permet de réduire la profondeur de l'arbre et donc améliorer les perfs
    fred, si je peux me permettre comment tu identifies rapidement les index à rebuilder ? as tu mis en place une procédure préventive à ce niveau ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Reconstruction d'index inéficasse
    Par Drezounet218 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 07/03/2008, 16h28
  2. [Firebird] - Reconstruction d'index ?
    Par SurfingJeff dans le forum Administration
    Réponses: 4
    Dernier message: 18/04/2007, 16h37
  3. Reconstruction d'index
    Par superfly dans le forum Oracle
    Réponses: 22
    Dernier message: 23/03/2006, 16h58
  4. reconstruction d'index de texte intégral
    Par zarbiman dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/12/2005, 08h23
  5. Réponses: 4
    Dernier message: 16/12/2004, 13h56

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