Bonjour,
Sous Oracle v11.2.0.1 nous avons une requête sous la forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.