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 Oracle Discussion :

Question sur l'utlisation des index sous oracle?


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut Question sur l'utlisation des index sous oracle?
    Bonjour,

    on sait déja que les index permet d'effectuer plus rapidement des recherches.
    donc ici pour les requetes de type select

    mais si des requetes d'insertion, modification et suppression est ce que c la meme chose?

    par exemple j'ai une table qui contient un champ nom comme colonne j'ai crée un index pour ce champ dans la requete de seletion c'est bien parfait

    mais lorsque j'ai effectué une requete de suppression est ce que index sera supprimé également ou bien il y a autre action pour l'update et insert ?

    si vous avez des réponses n'hésitez pas de m'aider.

  2. #2
    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
    Imagine toi le Quid. Quelques milliers de pages et donc un index pour s'y retrouver. Pour trouver un article c'est très efficace puisqu'il suffit de parcourir 10 pages d'index rangé par ordre alphabétique plutôt que des milliers de pages sans ordre particulier. Par contre, si un article est ajouté, supprimé ou déplacé, non seulement il y a la modification de l'article à faire mais aussi l'index à mettre à jour pour changer le numéro de page ou de colonne dans la page.

    Pour Oracle c'est pareil

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut
    d'abord merci ,mais j'ai lu une documentation en anglais sur les indexes sur oracle
    dans la rubrique les avantages et les inconvénients il décrit que parmi les inconvénients
    Ne pas créer un index lorsque The table is updated frequently est ce que tu me confirme dans ce sens?

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    Citation Envoyé par ouadie99 Voir le message
    Ne pas créer un index lorsque The table is updated frequently
    C'est un conseil stupide ! Cela dépend bien sur du contexte... Mais un index a pour but d'optimiser les recherches.

    Donc si la table est mise à jour fréquemment mais aussi consultée fréquemment avec des critères, un index s'imposera si elle gagne en volume.. De plus cela dépend aussi de la nature des données et leur répartition....

  5. #5
    Membre éprouvé Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Points : 945
    Points
    945
    Par défaut
    Que préfères-tu ?
    perdre un chouia de seconde lors d'une mise à jour mais booster les lectures
    ou accélérer les mises à jour mais ne pas booster les lectures et se taper des full table scan ?
    Dans beaucoup d'ERP, il arrive de voir des tables avec 5, 10 voire plus de 15 index.

  6. #6
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 348
    Points : 604
    Points
    604
    Par défaut
    Citation Envoyé par 13thFloor Voir le message
    Que préfères-tu ?
    perdre un chouia de seconde lors d'une mise à jour mais booster les lectures
    ou accélérer les mises à jour mais ne pas booster les lectures et se taper des full table scan ?
    Dans beaucoup d'ERP, il arrive de voir des tables avec 5, 10 voire plus de 15 index.
    Bonsoir,
    En cas de chargemnts massifs: drop index, chargement puis create index ...
    Crdlt,
    SDR

  7. #7
    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
    Citation Envoyé par ouadie99 Voir le message
    Ne pas créer un index lorsque The table is updated frequently est ce que tu me confirme dans ce sens?
    comme je l'ai dis, un update met l'index à jour, c'est donc couteux. Ceci étant dit, l'index peut servir aussi à accélérer l'exécution de l'update, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE tab
    col = 'toto'
    WHERE col = 'titi'
    S'il y a un index sur col, tu as des chances que l'aide qu'il apporte pour trouver la ligne compense la perte de temps lors de la mise à jour de l'index... et on peut en plus espérer que tu sélectionnes plus souvent que tu updates

    Donc je ne confirme pas

    PS : t'as un lien sur la source qui dit ça ?

  8. #8
    Membre éprouvé Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Points : 945
    Points
    945
    Par défaut
    Citation Envoyé par agdid04 Voir le message
    Bonsoir,
    En cas de chargemnts massifs: drop index, chargement puis create index ...
    Crdlt,
    SDR
    Perso, je préfère l'alter index unusable (avec skip_unusable_indexes à true) suivi d'un rebuild => pas de risque de perdre le ddl

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut
    merci bcp donc selon les réponses les index optimise la racherche et garde la performance??

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    C'est un conseil stupide ! Cela dépend bien sur du contexte... Mais un index a pour but d'optimiser les recherches.

    Donc si la table est mise à jour fréquemment mais aussi consultée fréquemment avec des critères, un index s'imposera si elle gagne en volume.. De plus cela dépend aussi de la nature des données et leur répartition....
    Merci monsieur vicenzo pour la réponse cité au dessus mais ici lorsque j'ai une requete de select et update et delete ce ne pose pas probléme au niveau des indexe car on utilise la clause where.

    mais on sait déja que la requete de type insert n'utilise pas la clause where
    donc est ce que c la meme chose c à d optimal ou bien ca pose un probléme

  11. #11
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    g pa kmpri la ktion .....




    Traduction : Je n'ai pas compris ton dernier post...

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut
    est ce que l'utilisation des index influence les requetes de type insert ??

  13. #13
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    oui, un insert sur une table indexée prends plus de temps puisque l'index doit être mis à jour.

    Maintenant ce "surcout" en terme de temps est souvent transparent ou négligeable.

    Mais même si cela ralentissait des inserts sur une grosse table de plusieurs dizaine de millions de lignes, le gain sur la sélection ou la mise à jour utilisant des critères peut être d'un facteur impressionnant...

  14. #14
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut
    Merci bcp Monsieur Vienzo bcp et désolé pour le dérangement
    mais svp j'ai une autre question ou bien recommandation?

    est ce que c'est recommandé de créer des indexes dans un tablespace tablespace à part des données ?

  15. #15
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 306
    Points
    5 306
    Par défaut
    oui

  16. #16
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332

  17. #17
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Mais notre Tom oublie que lorsque un utilisateur accede à un index, un autre utilisateur peut accéder au data.
    De plus avoir un index dans un tablespace avec un grand extent c'est plus performant de mélanger les datas et les indexes.

  18. #18
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Points : 67
    Points
    67
    Par défaut
    j'espere plus de justifications c quoi la raison principale de placer les index dans un tablespace autre tablespace de données ???

  19. #19
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bref Il faut tester ,tester ....


    entre
    rebuilder un index sur le meme tablespace

    et
    rebuilder
    sur un autre que les datas

    car rebuilder sur un autre tout court .... n'est pas suffisant

  20. #20
    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
    surtout quand tu perds un datafile, tu as une chance sur deux pour que ce soit les indexes uniquement qui sont perdus alors que si tu mélanges data et index, en cas de perte de datafile t'as plus qu'à jeter ta base

    En plus c'est une recommandation d'Oracle

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/05/2012, 17h02
  2. question sur le comportement des threads
    Par rose-bonbon dans le forum CORBA
    Réponses: 4
    Dernier message: 27/10/2004, 18h00
  3. comment s'incremente un index sous oracle ?
    Par elitol dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/07/2004, 16h16
  4. question sur le format des images ..
    Par vbcasimir dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 28/08/2003, 12h08

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