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 :
Depuis que je suis passé en version 2.5, la requête répond en 3s
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'))||'%'))
Si je décompose cette requête en 2 :
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part select phonex from proc_phonex('pol')
dans les 2 cas, réponse à nouveau en 15ms.
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'||'%'))
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
Partager