SqlConnection vs Sql Session。 他们的生命一致吗?
我想为我的c#
app中的某些进程应用一些sql-session级别设置。
例如,我想将某些后台进程的DEADLOCK_PRIORITY
设置为LOW
。
问题是:
-
如果我打开一个新的SQL连接,那会启动一个新的sql-session吗?
-
sql-session会一直存在,直到连接关闭? 如果我在打开
SqlConnection
后立即应用我的设置,它们对于在同一个SqlConnection
上下文中执行的所有查询是否有效? -
连接池怎么样? 这可能是我的
SET DEADLOCK_PRIORITY LOW
设置将被我的系统中的其他进程(我不想要)重用,因为SqlConnection
实际上没有关闭( asp.net连接池决定重用它)。
谢谢!
从池中获取SqlConnection
时,ADO.NET会执行sp_reset_connection
(在关闭它之后将其返回到池中)。 根据“exec sp_reset_connection”在Sql Server Profiler中的含义是什么? 正在重置所有SET
选项。 这将包括DEADLOCK_PRIORITY
。
我仍然建议你写一个很小的测试程序来证实这一点。 ADO.NET会话池并不完美,例如它不会重置ISOLATION LEVEL
并且在关闭时不会回滚事务。
- ASP.NET / Active Directory – 支持域用户的自动登录
- 在剃刀视图中设置分页页面大小DropDownList
- System.Net.Mail.SmtpException:操作已超时。 asp.net中的错误使用godaddy托管发送邮件代码
- Google API用于获取文档/ SpreadSheet的内容
- 填充CSV文件中的数据集
- web.config asp.net中的oracle数据库连接
- 表单身份validation了解context.user.identity
- 如何通过单击浏览器的后退按钮获得相同的页面
- IIS应用程序池回收触发器:没有足够的存储空间可用于完成此操作(Azure应用程序服务)