gperuch
Messages postés40Date d'inscriptiondimanche 18 janvier 2009StatutMembreDernière intervention 2 février 2012
-
27 mars 2009 à 10:45
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 2011
-
10 avril 2009 à 16:43
pourquoi :
SELECT Count('')
FROM TableA A
INNER JOIN TableB B
ON A.champ1 = B.champ1
WHERE B.champIndexé = '39990020750087'
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 20113 8 avril 2009 à 17:13
Bonjour
à premiere vue, je dirai que comme tu declare P1 comme varchar, et que ta colonne indéxée doit etre de type numérique
lors de ta clause WHERE de ta deuxieme requete ci dessus, il CAST non pas ton P1 en tant que numerique, mais ton champs indexé en tant que VARCHAR. il cast donc TOUT des enregistrement, et du coup ne peut plus se serir de l'index.
je ne sais pas si j'ai été clair, et je ne suis meme pas sur de ma réponse, mais c'est à vérifier (essaie de declarer P1 du meme type que ta colonne 'champIndexé ')
gperuch
Messages postés40Date d'inscriptiondimanche 18 janvier 2009StatutMembreDernière intervention 2 février 20121 10 avril 2009 à 11:07
Merci d'avoir proposer une piste... pertinente de plus,
Mais ma derrière phrase précise bien que B.champIndexé est un varchar(20).
De mon coté j'ai un peu avancé:
Ma requete est sous sql 2000, et le j'ai remonter la base sous 2005 pour voir , et je n'ai plus le Probleme.
Donc peut etre un bug de 2000???
A suivre