上下文连接与常规连接

适用范围:SQL Server

如果要连接到远程服务器,请始终使用常规连接,而不使用上下文连接。 如果您需要连接到存储过程或函数正在其上运行的同一台服务器,则在大多数情况下请使用上下文连接。 这具有一些优势,例如,在同一个事务空间中运行以及不必重新验证。

此外,使用上下文连接通常会导致性能更佳和占用更少的资源。 上下文连接是一个仅进程内连接,因此可以通过绕过网络协议和传输层来发送 Transact-SQL 语句并接收结果来“直接”联系服务器。 同时跳过验证过程。 下图显示了 SqlClient 托管提供程序的主要组件,以及在使用常规连接时以及使用上下文连接时不同组件如何相互交互。

上下文和常规连接的代码路径。

上下文连接所采用的代码路径较短,且所涉及的组件较少,因此,您可以预计请求到达服务器和从服务器获得结果的速度将高于采用常规连接时。 服务器上的查询执行时间对于上下文连接和常规连接是相同的。

在某些情况下,您可能需要与同一台服务器之间建立单独的常规连接。 例如,使用上下文连接存在某些限制,如 常规连接和上下文连接限制中所述。

另请参阅

上下文连接