-
Table temporaire et lock
Bonjour à tous,
je suis en train de découvrir chez un client des traitements SQL affreux avec des tables temporaires dans tous les sens.
Ma question, rapide, est à propos des isolation des tables #temp.
Il y a un traitement qui joue avec une table #table1.
Puis ce même traitement a été dupliqué pour jouer avec une même table #table1, du même nom.
Sachant que les 2 traitements sont déclenché en parallèle par un package SSIS, sans configuration particulière, Est-ce que le moteur distinct bien les 2 tables ou est-ce que cela représente le même objet, impliquant donc des locks entre les 2 ?
Merci
-
Bonjour,
Il me semble qu'une table temporaire #table1 est locale, et qu'une table temporaire ##table2 est globale.
Une table temporaire locale est créée automatiquement par SQL server avec un préfixe propre à la session, et que deux tables temporaires locales créées dans deux sessions différentes seront donc au final deux tables distinctes...
-
C'est ce qui me semblait aussi, mais je me demande à quel point, le fait que ce soit SSIS qui exécute les procédures stockées en parallèle, utilise peut-être la même session ??
-
Vous pouvez le voir en utilisant les DMV sys.dm_exe_connections et sys.dm_exec_sessions.
En principe par défaut SSIS ouvre 2 connexions distinctes pour exécuter 2 tâches en parallèle ..
++
-
Merci pour l'idée.
Je jetterai un œil à la prochaine exécution.
Pour le moment j'essaie de regarder ce qui tourne en même temps pour expliquer des temps de traitements très variables.