Bonjour à tous,
J'ai une requête qui met beaucoup trop de temps à s'exécuter. En regardant le plan d'exécution je vois qu'il y a des "table spool" qui mettent beaucoup de temps à s'exécuter. Voici donc la reqûete en question:
Cette requête met quasiment 1 minute à s'executer .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT COUNT(distinct categories_guid) as 'c' FROM searchproducts WHERE ((CONTAINS((products_name,categories_name), '"Auto*"') AND CONTAINS(categories_name, '"Jeu*"')) AND CONTAINS(categories_name, '"PS2*"'))
Le problème vient apparemment du distinct car sans celui-ci la requête retourne le resultat en moins d'une seconde (et aucun table spool n'est utilisé du coup).
J'ai essayé de passer par des requêtes imbriquées à la place d'utiliser le distinct mais ca ne change rien.
Pour info dans le plan d'execution avec le distinct les tables spools ont en entrée environ 600 lignes mais en ressortent 70 000 000 .
Enfin autre précision importante, si je fais des CONTAINS(categories_name, '"Jeu"') à la place des CONTAINS(categories_name, '"Jeu*"'), alors la requete est instantanée.
Quelqu'un pourrait-il m'orienter sur une piste pour resoudre ce problème?
Merci d'avance
Paske
Partager