SqlConnection vs Sql Session. Est-ce que leur durée de vie coïncide?

Je souhaite appliquer des parameters de niveau de session SQL pour certains process dans mon application c# .

Par exemple, je veux définir DEADLOCK_PRIORITY pour certains process d'arrière-plan sur LOW .

Les questions sont:

  1. Si j'ouvre une nouvelle connection sql, cela démarre-t-il une nouvelle session sql?

  2. La session SQL sera-t-elle active jusqu'à la fermeture de la connection? Si j'applique mes parameters juste après l'ouverture de SqlConnection , seront-ils valides pour toutes les requêtes exécutées dans le context de cette même SqlConnection ?

  3. Qu'en est-il du regroupement de connections ? Est-ce possible que mon SET DEADLOCK_PRIORITY LOW sera réutilisé par d'autres process dans mon système (ce que je ne veux pas) parce que SqlConnection n'est pas réellement fermé (le regroupement de connections asp.net décide de le réutiliser).

Je vous remercie!

ADO.NET exécute sp_reset_connection lorsque vous prenez une SqlConnection partir du pool (après l'avoir fermé pour qu'il soit renvoyé au pool). Selon Qu'est-ce que "exec sp_reset_connection" signifie dans Sql Server Profiler? toutes les options SET sont en cours de réinitialisation. Cela inclurait DEADLOCK_PRIORITY .

Je suggère toujours que vous écrivez un programme de test minuscule pour le confirmer. Le regroupement de sessions ADO.NET n'est pas parfait, par exemple, il ne réinitialise pas le ISOLATION LEVEL et n'annule pas les transactions lors de la fermeture.