2016-05-25 111 views
2

当我在阅读有关MARS我碰到下面的语句:会话与交易

当火星与SQL Server的使用而启用,使用的每个命令对象增加了一个会话的连接。

我听说过会议之前,但无法理解它的内部工作原理以及如何将会话添加到连接。我知道什么事务和隔离类型等。两者有什么区别?

+1

你知道会话与.NET有关吗?它在数据库中是相似的。这是一个半永久性的国家容器。 –

+0

@Jack你的意思是会话状态? – Sadiq

+0

如果它与ASP.Net中的会话类似,那么如果一个SQL语句(SELECT)正在迭代,并且在另一个(SELECT)语句在第一个SELECT语句完成之前开始执行的临时过程中,那么这两个命令都会使用同一个会话并且结果集将被同步传递。我对吗? – Sadiq

回答

2

会话是一种SQL Server的概念,用于在逻辑上将应用程序与数据库的交互分组。临时表是会话范围的。当您致电SqlConnection.Open时,您将获得新的会话。

这里是我的MARS内部的理解:

SQL Server将在每个连接一次创建多个会话实现MARS。每个并发命令都在它自己的会话对象中运行。你可以看到这是DMV会议。

我不认为你需要知道的是在意这一点。此内部细节不会影响您使用该功能的方式。特别是,交易和隔离不会受到影响(因为您提到了这些条款,因此提及这一点)。