Bonjour, pour une fois c'est moi qui ai une question...
Sous SQL SERVER 2008 R2:
Mon soucis n'en est pas vraiment un mais un cas que je ne saurais expliquer:
Voici deux requetes (simplifiées) à priori identiques:
Même plans d’exécutions...(voir fichiers joints) sauf un tri a priori peu coûteux, même nombre d'IO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 DECLARE @value VARCHAR(50)=dbo.FN_TRANSFORM_FOR_SEARCH('refer') SELECT TOP 20 * FROM dbo.ITEM_SEARCH WHERE VALUE LIKE( '%'+@value+'%')-->10ms SELECT TOP 20 * FROM dbo.ITEM_SEARCH WHERE VALUE LIKE('%'+dbo.FN_TRANSFORM_FOR_SEARCH(@value)+'%') -> 2,5 secondes
Précision: FN_TRANSFORM_FOR_SEARCH est une fonction scalaire dérivée de celle de SQL PRO:
http://blog.developpez.com/sqlpro/p7...ction-de-corr/
Partager