SqlConnection与Sql会话.他们的一生是否一致
本文关键字:是否 一生 他们的 Sql 会话 SqlConnection | 更新日期: 2023-09-27 18:14:20
我想为c#
应用程序中的某些进程应用一些sql会话级别设置。
例如,我想将某些后台进程的DEADLOCK_PRIORITY
设置为LOW
。
问题是:
-
如果我打开一个新的sql连接,会启动一个新sql会话吗?
-
sql会话会一直持续到连接关闭为止吗?如果我在打开
SqlConnection
后立即应用我的设置,它们对在同一SqlConnection
的上下文中执行的所有查询都有效吗? -
连接池怎么样?我的
SET DEADLOCK_PRIORITY LOW
设置是否可能会被系统中的其他进程重用(我不想这样做(,因为SqlConnection
实际上并没有关闭(asp.net连接池决定重用它(。
谢谢!
ADO。NET在从池中获取SqlConnection
时执行sp_reset_connection
(在关闭它以便将其返回到池之后(。根据What dos";exec sp_reset_connection"Sql Server Profiler中的平均值?正在重置所有CCD_ 10选项。这将包括DEADLOCK_PRIORITY
。
我仍然建议你写一个小的测试程序来证实这一点。ADO。NET会话池并不完美,例如,它不会重置ISOLATION LEVEL
,并且在关闭时不会回滚事务。