Accéder au contenu principal

Articles

Affichage des articles du juillet, 2008

Tester un début de chaine: Left ou Like ?

Pour tester la valeur du début d'une chaîne de caractères, quelle est la solution la plus efficace: IF Left(strTexte, 5) = "TOTAL" THEN ou bien IF strTexte LIKE "TOTAL*" THEN Pour répondre à cette palpitante question j'ai mesuré quelques dizaines de milliers d'itérations, et le résultat est intéressant: la solution LEFT prend 6 fois plus de temps que la solution Like, et cela en incluant le temps des autres traitements. Allons plus loin: qu'en est-il lorsqu'on veut tester l'extrémité droite de la chaîne de caractères ? Après test, RIGHT utilise le même temps que LEFT, par contre Like "*Total" prend 3 fois plus de temps que Like "Total*" . Like reste donc dans tous les cas plus performant, mais d'un facteur 3 au lieu d'un facteur 6. Si l'on tient compte que les temps mesurés incluaient d'autres opérations (boucle FOR..NEXT, affichage du résultat..) l'impact réel des facteurs mesurés est enco