SQL Server:事务执行是否总是立即执行?

SQL Server:事务执行是否总是立即执行?,sql,sql-server,transactions,Sql,Sql Server,Transactions,SQL Server(2005/2008/2012)是否在命令到达时立即执行BEGIN TRANSACTION 但是(选项、网络缓冲/延迟、分布式数据库等)是否可能因为必须先发生其他事情而保留BEGIN事务命令以及随后的所有内容 此外,当数据库/网络导致的缓冲/延迟成为可能时,是否有可能以相反的顺序执行两个事务?当服务器收到BEGIN TRAN消息时,它开始保留资源并执行命令。如果到达的另一个事务需要一些相同的资源,则需要等待直到第一个事务释放这些资源,通常是提交 这可以通过改变服务器隔离级别来

SQL Server(2005/2008/2012)是否在命令到达时立即执行BEGIN TRANSACTION

但是(选项、网络缓冲/延迟、分布式数据库等)是否可能因为必须先发生其他事情而保留BEGIN事务命令以及随后的所有内容


此外,当数据库/网络导致的缓冲/延迟成为可能时,是否有可能以相反的顺序执行两个事务?

当服务器收到BEGIN TRAN消息时,它开始保留资源并执行命令。如果到达的另一个事务需要一些相同的资源,则需要等待直到第一个事务释放这些资源,通常是提交

这可以通过改变服务器隔离级别来有所改变,但一般来说,事务是按照接收顺序执行的

如果用户从不同的位置进行更改,则网络问题可能会导致事务更改顺序。但一旦事务到达服务器,如果它们使用相同的对象,就没有理由颠倒顺序

这种行为就是酸中的C:稠度


事务可能会无序执行,但前提是它们没有访问相同的资源。

是,一旦命令到达,事务将立即开始,当您提交或回滚时,操作将相应完成

报告说:

在查询优化期间,SQL Server会查找查询或索引 可能受益于并行执行的操作。为了这些 查询时,SQL Server会在查询中插入exchange运算符 为并行执行准备查询的执行计划。一 exchange运算符是查询执行计划中的一个运算符 提供流程管理、数据重新分发和流控制。 exchange操作符包括分发流、重新分区 Streams和Gather Streams逻辑运算符作为子类型,一个或多个 其中的一个可以出现在查询计划的Showplan输出中 并行查询

您可以并行执行查询,但一旦查询开始,除非您不更改隔离级别,或者如果出现任何错误,否则您无法更改查询的执行。因此,简而言之,您不能让另一个查询等待执行第一个查询

此外,当数据库/网络导致的缓冲/延迟是可能的时,是否有可能以相反的顺序执行两个事务


据我所知,您无法更改查询的执行顺序,从而更改顺序或进行任何代码/查询更改。

SQL Server(2005/2008/2012)是否会在命令到达后立即执行BEGIN TRANSACTION<代码>是事务将一直处于活动状态,直到它不
提交
回滚
好的,我对此非常确定。另外两个问题呢?第二点没有完全涵盖。网络呢?