{Oracle} Performance consultation / insertion
Fermé
chenapan75
Messages postés
1
Date d'inscription
jeudi 11 mars 2010
Statut
Membre
Dernière intervention
11 mars 2010
-
11 mars 2010 à 14:55
fiu - 22 mars 2010 à 23:04
fiu - 22 mars 2010 à 23:04
Bonjour,
Je développe actuellement un programme en Pro*C qui se connecte (entre autre) à un base Oracle.
J'utilise une table munie d'un index sur laquelle j'effectue dans un premier temps une consultation qui est tout de suite suivi d'une insertion.
Or, je sais que pour chaque insertion les index d'une table sont automatiquement mis à jour.
Je m'interroge donc sur l'efficacité d'utiliser un index ou non.
Ou il y a-t-il un moyen de forcer Oracle à ne pas faire sa mis a jour sur les index pour chaque insertion ?
Il faut savoir que j'ai des contrainte de performance très pointu et la moindre centième de seconde est importante. Et en moyenne, j'ai 200 requêtes de ce type à la minute.
Merci.
Je développe actuellement un programme en Pro*C qui se connecte (entre autre) à un base Oracle.
J'utilise une table munie d'un index sur laquelle j'effectue dans un premier temps une consultation qui est tout de suite suivi d'une insertion.
Or, je sais que pour chaque insertion les index d'une table sont automatiquement mis à jour.
Je m'interroge donc sur l'efficacité d'utiliser un index ou non.
Ou il y a-t-il un moyen de forcer Oracle à ne pas faire sa mis a jour sur les index pour chaque insertion ?
Il faut savoir que j'ai des contrainte de performance très pointu et la moindre centième de seconde est importante. Et en moyenne, j'ai 200 requêtes de ce type à la minute.
Merci.
A voir également:
- {Oracle} Performance consultation / insertion
- Diagnostic de performance énergétique - Accueil - Maison
- Test performance pc - Guide
- Test performance pc gratuit - Accueil - Utilitaires
- Mode performance - Guide
- Insertion sommaire word - Guide
4 réponses
Salut,
évidemment que désactiver ton index puis le reconstruire va te coûter du temps :
1. l'index sert à accélérer les recherches => si tu le désactives tu te pénalises
2. l'index est automatiquement mis à jour à chaque modification => bien évidemment le moteur se contente normalement d'indexer seulement la nouvelle donnée. Si tu désactives ton index, insère une donnée et réactive l'index, le moteur ne saura pas combien de modifications ont été faites, donc toute la table sera ré-indexée...
donc, la résolution de ton problème passe par la lecture et l'assimilation du storage_clause évoqué plus haut et quelques chapitres sur le tuning dans oracle, et plus particulièrement la compilation (ou préparation) des instructions, idem pour les procédures et l'agencement des indexes
en dernier ressort, peut-être faudra-t-il passer par un autre sgbd si oracle est si peu performant...
évidemment que désactiver ton index puis le reconstruire va te coûter du temps :
1. l'index sert à accélérer les recherches => si tu le désactives tu te pénalises
2. l'index est automatiquement mis à jour à chaque modification => bien évidemment le moteur se contente normalement d'indexer seulement la nouvelle donnée. Si tu désactives ton index, insère une donnée et réactive l'index, le moteur ne saura pas combien de modifications ont été faites, donc toute la table sera ré-indexée...
donc, la résolution de ton problème passe par la lecture et l'assimilation du storage_clause évoqué plus haut et quelques chapitres sur le tuning dans oracle, et plus particulièrement la compilation (ou préparation) des instructions, idem pour les procédures et l'agencement des indexes
en dernier ressort, peut-être faudra-t-il passer par un autre sgbd si oracle est si peu performant...
Salut,
en fait, ta question est simple : Comment puis-je modeler le fonctionnement d'un index puisque son réglage par défaut n'est pas performant ?
je t'enjoins donc de jeter un œil sur la littérature adéquate : storage_clause qui, je l'espère, te comblera.
en fait, ta question est simple : Comment puis-je modeler le fonctionnement d'un index puisque son réglage par défaut n'est pas performant ?
je t'enjoins donc de jeter un œil sur la littérature adéquate : storage_clause qui, je l'espère, te comblera.
Bonjour,
Sauf erreur, je pense que tu peux désactiver l'index avant les insertion, et le reconstruire après, en faisant comme ça :
alter index TON_INDEX unusable;
...
TES INSERTIONS EN TABLE
....
alter index TON_INDEX rebuild;
Cordialement, M.
Sauf erreur, je pense que tu peux désactiver l'index avant les insertion, et le reconstruire après, en faisant comme ça :
alter index TON_INDEX unusable;
...
TES INSERTIONS EN TABLE
....
alter index TON_INDEX rebuild;
Cordialement, M.