Bonjour,
Je suis en train de ma battre avec une procédure qui ne se termine jamais.
Cette procédure a une requête qui pose problème uniquement lorsque je l'exécute via un package SSIS. En procédant par élimination j'ai trouvé quelle ligne pose problème.
Lorsque je commente cette ligne la procédure s'exécute normalement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 SELECT ... INTO #tmp FROM Table1 t1 LEFT JOIN Table2 t2 ... LEFT JOIN ... INNER JOIN tn ... WHERE t2.ID IS NULL AND t1.DAT_DEB >= @date_ref -- cette ligne pose problème
CE qui est aussi étonnant c'est que lorsque j'exécute la procédure dans management studio (EXEC proc_toto) cette ligne ne pose pas de problèmes.
Le problème se pose uniquement lorsque je l'exécute via un package SSIS.
En faisant des investigations j'ai remarqué que la requête pose plein de verrous visibles dans l'Activity Monitor. J'ai essayé de rajouter WITH (TABLOCK) sur Table1, j'ai vu moins de verrous mais ça ne règle pas le problème. J'ai également essayé d'ajouter OPTION (KEEP PLAN) - pareil.
Autre remarque importante: la valeur de @date_ref n'a aucun impact sur la requête, même si on rentre une valeur qui doit ramener 0 résultats, par contre si on remplace la variable par une valeur en dur - aucun problème.
Quelqu'un a une idée de ce que ça peut être?
Partager