[Sybase] Utilisation indexes sur table Proxy
Bonjour,
J'ai un soucis de jointure entre une table proxy et une table locale.
Voici la définition de ma table proxy sur le serveur distant :
TABLE_PROXY(id_TP,id_T,champ1,champ2)
-> index unique IDX1(id_TP)
-> index IDX2(id_T)
Cette table à une volumétrie d'environ 2000000 de lignes
Voici la définition de ma table locale :
TABLE(id_T,champ3,champ4)
-> index unique IDX1(id_T)
Cette table à une volumétrie d'une dizaine de lignes.
Maintenant, je fais ceci :
Code:
SELECT * FROM TABLE_PROXY WHERE id_T=3432
La réponse est instantanée.
Mais quand je fais la jointure avec ma table locale :
Code:
1 2 3
| SELECT *
FROM TABLE_PROXY A
WHERE EXISTS (SELECT null FROM TABLE B WHERE A.id_T=B.id_T) |
La requête dure trois plombes alors que si ma table proxy est copiée en locale, la réponse est instantanée.
Si quelqu'un pourrait me dire ce qui se passe exactement... Car même en forçant les indexes avec une jointure entre les deux tables, j'ai ce soucis de lenteur (requête qui mets à peu près 2 heures).
Merci
NB : pour ceux qui me proposent de récupérer la table distante en locale, laissez tomber l'idée car le but est de comparer la même table entre les deux serveurs pour connaitre les différences.
NB2 : si vous avez un bon site avec des exemples sur ce genre de manip, ça m'intéresse.
NB3 : si tu es blonde à forte poitrine.... non je déconne !