SQL Server 中工作线程和会话的区别

Mar*_*426 3 sql-server

我正在http://msdn.microsoft.com/en-US/library/azure/dn741336.aspx 上的“性能模型概述”下查看 Azure Premium/P3 数据库产品

工作线程和会话有什么区别?当我认为最多可能有 16000 台客户端机器打开同一个数据库的并发会话但只能同时执行 1600 个查询时,我是否正确?

小智 5

这取决于会话的执行计划。如果会话使用串行计划执行查询,则是,您可以说 1600 个查询,但如果它使用并行计划运行查询,则会话每个会话可以有多个工作线程。

任务、工作者、线程、调度程序、会话、连接、请求——这一切意味着什么?

Worker(工作线程)——这是一个线程的逻辑 SQL Server 表示(将其视为 OS 线程顶部的包装器)。它是调度程序中的一个结构,用于维护有关工作线程的工作的 SQL Server 特定信息。sys.dm_os_workers。工人是执行主人(调度员)分配给他们的任务的卑微仆人。

会话——当客户端应用程序连接到 SQL Server 时,双方建立一个“会话”来交换信息。严格地说,会话与底层物理连接不同,它是连接的 SQL Server 逻辑表示。但出于实际目的,您可以将其视为连接(会话 =~ 连接)。参见 sys.dm_exec_sessions