SqlConnection的VS SQL会话。 难道他们的寿命一致?(SqlConnection

2019-09-04 02:32发布

我想在我的某些工艺应用一些SQL会话级设置c#应用程序。

举例来说,我想设置DEADLOCK_PRIORITY一些后台进程LOW

这些问题是:

  1. 如果我打开一个新的SQL连接,是否启动新的SQL会话?

  2. 请问SQL会话活动,直到连接被关闭? 如果我申请我的设置之后SqlConnection被打开,他们将适用于所有的查询在相同的环境中执行SqlConnection

  3. 怎么样连接池 ? 这是可能的,我的SET DEADLOCK_PRIORITY LOW设置将在我的系统中其它进程,因为(我不希望)被重用SqlConnection实际上并没有关闭(asp.net连接池决定重用它)。

谢谢!

Answer 1:

ADO.NET执行sp_reset_connection ,当你把一个SqlConnection从池(在已关闭它,这样它就会返回到池中)。 根据什么是“EXEC sp_reset_connection的” SQL Server Profiler中是什么意思? 所有SET选项都被重置。 这将包括DEADLOCK_PRIORITY

我还是建议你写一个小的测试程序来证实这一点。 ADO.NET会话池是不完美的,例如,它不会重置ISOLATION LEVEL和关闭时不会回滚事务。



文章来源: SqlConnection vs Sql Session. Do their lifetimes coincide?