SqlConnection与Sql会话.他们的一生是否一致

本文关键字:是否 一生 他们的 Sql 会话 SqlConnection | 更新日期: 2023-09-27 18:14:20

我想为c#应用程序中的某些进程应用一些sql会话级别设置。

例如,我想将某些后台进程的DEADLOCK_PRIORITY设置为LOW

问题是:

  1. 如果我打开一个新的sql连接,会启动一个新sql会话吗?

  2. sql会话会一直持续到连接关闭为止吗?如果我在打开SqlConnection后立即应用我的设置,它们对在同一SqlConnection的上下文中执行的所有查询都有效吗?

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

谢谢!

SqlConnection与Sql会话.他们的一生是否一致

ADO。NET在从池中获取SqlConnection时执行sp_reset_connection(在关闭它以便将其返回到池之后(。根据What dos";exec sp_reset_connection"Sql Server Profiler中的平均值?正在重置所有CCD_ 10选项。这将包括DEADLOCK_PRIORITY

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