Temps exécution avec condition sur un CAST
Bonjour,
Je dois lister les enregistrements de la table A qui ne sont pas dans la table B avec une condition sur 2 champs numériques :
Code:
1 2 3 4 5 6 7 8 9 10 11
| /*origine*/
select top 1 [Numero_commande] ,[Sufixe_Cde] ,[Date_commande] ,[Date_promise] ,[Type_commande],[Numero_BP]
,[Magasin] ,REPLACE(REPLACE([Numero_ligne] , ',' , '' ) , '.' , '' ) ,[Article] ,[Designation] ,[Emplacement] ,[Numero_lot] ,[Quantite_a_expedie]
,[Unite_mesure] ,[poid_total] ,[Niveau] ,[Allee] ,[Colonne] ,[Scolonne] ,[Emplacement_T] ,[Kit_Sdcomm] ,[Kit_Sdktln]
from A
where cast(Numero_BP as char)+cast([Numero_ligne] as char) not in
(
select cast(Numero_BP as char)+cast(Numero_ligne as char)
from B
)
order by id asc |
Pour faire ma jointure, je convertie les numériques en chaines pour concaténation mais le temps d'execution est environ 2 minutes.
Les index sont bien crée sur numéro_BP et numéro_ligne.
Que faire pour réduire ce temps d’exécution?
Merci.