Bonjour,

Je viens de passer mon serveur Firebird en version 2.5 64 bits.
Avant, j'étais en version 2.1 32 bits.

Cette requête mettait 15ms pour répondre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select * FROM contacts  c
WHERE c.indexcontact in (select indexcontact from contacts_fullsearch where f.phonex like ((select phonex from proc_phonex('pol'))||'%'))
Depuis que je suis passé en version 2.5, la requête répond en 3s

Si je décompose cette requête en 2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select phonex from proc_phonex('pol')
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select * FROM contacts  c
WHERE c.indexcontact in (select indexcontact from contacts_fullsearch where f.phonex like ('pol'||'%'))
dans les 2 cas, réponse à nouveau en 15ms.
J'ai donc solutionné mon problème, mais je voudrais comprendre ce pb et peut être le résoudre autrement sur une seul requête

Informations :
proc_phonex est une procédure stockée
contacts_fullsearch est une table avec une clé sur le champs phonex et une clé sur le champs indexcontact