SqlConnection是否并行处理查询?

栏目: 数据库 · SQL Server · 发布时间: 6年前

内容简介:如果我打开一个SQL Server的SqlConnection,然后从多个后台线程发出多个查询,所有使用那个连接 – 这些查询是否会按顺序执行(不关心顺序)?具体来说,如果在一个查询的开头我更改了隔离级别,然后在该查询结束时将其恢复 – 这个隔离级别是否有可能适用于其他查询?我想不是,但想确认一下.

如果我打开一个SQL Server的SqlConnection,然后从多个后台线程发出多个查询,所有使用那个连接 – 这些查询是否会按顺序执行(不关心顺序)?

具体来说,如果在一个查询的开头我更改了隔离级别,然后在该查询结束时将其恢复 – 这个隔离级别是否有可能适用于其他查询?

我想不是,但想确认一下.

SQL Server 2008 R2

我在谈论System.Data.SqlClient.SqlConnection

加载问题,一个明确的答案是不可能的,因为@ LasseV.Karlsen已经声明SqlConnection不是线程安全的,所以行为将是不可预测的.我过去尝试过类似的场景但都失败了.以下是我认为您的问题中的参数会发生的情况.

Does SqlConnection processes queries in parallel?

不,它不知道如何,因为它不是为这项任务而设计的.虽然可以建立一个以这种方式使用它的过程这一事实很诱人.

will those queries be executed sequentially

是.查询将由 SQL 引擎按接收顺序执行.虽然您的连接对象可能不知道将结果传递回哪个线程,但您将获得可怕的“对象引用错误”.

is there a chance that this isolation level may apply to other queries

是.如果更改分配给SqlConnection的事务对象的隔离级别,然后其中一个线程尝试使用该连接,则默认情况下它将具有该隔离级别.此时辅助线程执行此操作的时间不受您的控制.您可以为每个命令分配一个事务(从而根据需要获得唯一的隔离级别),但您仍然会遇到连接不是线程安全的问题.

翻译自:https://stackoverflow.com/questions/31567664/does-sqlconnection-processes-queries-in-parallel


以上所述就是小编给大家介绍的《SqlConnection是否并行处理查询?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Developing Large Web Applications

Developing Large Web Applications

Kyle Loudon / Yahoo Press / 2010-3-15 / USD 34.99

As web applications grow, so do the challenges. These applications need to live up to demanding performance requirements, and be reliable around the clock every day of the year. And they need to withs......一起来看看 《Developing Large Web Applications》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换