Bonjour,
Sous Oracle v11.2.0.1 nous avons une requête sous la forme :
Select Q_Name From Tb_Msg T Where T.User_Data.Id_Msg ='R103130815A864F9'
Cette requête tourne en 0.5 secondes sur nos plateformes alors qu'elle met plus de 5 secondes chez nos clients. Nous avons éliminé le côté réseau car seule cette requête cause des problèmes
La seule particularité est que "User_Data" est une structure comme ceci
1 2 3 4 5 6 7 8 9 10
| TYPE QUEUE_MSG_TYP AS OBJECT
(
ID_MSG VARCHAR2(30)
,MSG_SIZE INTEGER
,REJECT_REASON INTEGER
,PROP1 VARCHAR2(30)
,PROP2 VARCHAR2(30)
,PROP3 INTEGER
,MSG BLOB
); |
C'est également vrai que les performances sont mauvaises si on regarde l’exécution plan qui indique un table access full pour retrouver notre ID_MSG.
Evidemment les développeurs ne veulent (peuvent ?) changer cette structure car cette table ne devrait pas contenir plus de 200 éléments. Chez le client on est à 2000 mais malgré tout en test chez nous la table avec 2000 éléments ne prends pas plus de 1/2 seconde contre 5 chez eux.
Auriez vous une idée pourquoi ?
En vous remerciant.
Partager