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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.