|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 71 ![]() |
Bonjour à tous,
un problème que je rencontre me laisse sceptique... Un traitement sur une appli durait plusieurs heures... Ceci principalement du à une requête d'update qui met environ 1 secondes par exécution, ceci n'est pas le fonctionnement normal de l'application. Lorsque je regarde le plan d'exécution de la requête, celui-ci est correct et passe bien par le bon index, par contre la presque totalité du temps passé est sur du temps CPU. Si je fait un rebuild de l'index, le plan d'exécution reste identique mais le temps / requête passe à 0.4 ms. J'ai du mal à saisir en quoi une reconstruction d'index peut engendrer cela sachant que les index sont supprimés et recréés régulièrement sur cette base (oui je sais >_<). Je me serais plutôt attendu à une baisse de performance en même temps que l'organisation de l'index se dégradait, mais à une augmentation si nette du temps de la requête. C'est un oracle 10.2.4 sur une linux redhat. Vous auriez une explication "logique" à un comportement de la sorte ? |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Ahmed AANGOURDBA Etudes Oracle Inscription : janvier 2010 Messages : 123 ![]() |
Bonjour,
pouvez vous fournir les traces/stas/plans vous permettant d'arriver à cette conclusion?
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/ |
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 71 ![]() |
Voici le plan d'exécution
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Ahmed AANGOURDBA Etudes Oracle Inscription : janvier 2010 Messages : 123 ![]() |
Un Index Range Scan peut effectivement s'avérer un peu plus long si l'index est fragmenté. C'est l'un des rares cas où le rebuild d'index peut aider. Sinon la reconstruction des indexes régulières n'est pas une bonne pratique.
http://richardfoote.files.wordpress....-the-truth.pdf As-tu un rapport tkprof pour les 2 requêtes?
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/ |
|
00
|
|
|
#5 |
![]() ![]() |
À noter aussi, si j'ai bien compris, dans votre traitement vous avez énormément de mises à jour que vous traitez en ligne à ligne.
Si c'est réalisable dans votre cas, une requête ensembliste de mise à jour sera beaucoup plus efficace.
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : novembre 2005 Messages : 71 ![]() |
Merci pour vos réponses,
Je comprends bien votre propos, seulement cela ne m'éclaire pas sur la cause du problème... Exemple, le traitement était lent, suite à un rebuild de l'index, le traitement se retrouve immédiat. 2 jours après le traitement s'avère encore très long, il ne s'agit donc pas de la fragmentation de l'index qui est en cause car les lignes de la tables sont modifiées de manière marginale (au plus quelques 10 aines de milliers de modifications sur 1.500k lignes). Je vais voir à ressortir le tkprof de la requête. |
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 311 ![]() |
Ca sera mieux. Jusqu’au là vous dit : « mon traitement était lent je fais un rebuild de index et après le traitement est devenu rapide. Mais aujourd’hui je constante à nouveau que mon est traitement lent. » Donc peut être ça n’a rien à voir avec le rebuild d’index.
Par contre une trace SQL étendue pourrait mettre en évidence ce qui se passe. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com