SQL Server 2005 是否为每个连接创建一个线程?或者它如何管理连接?
最佳答案
不,它有一个线程池,可以根据需要创建或终止。连接与执行实际查询执行的工作线程分开管理。一项查询还可能导致多个线程用于并行执行计划。
一些旧的基于 UNIX 的数据库,例如 Informix SE 或旧版本的 Postgres 会为每个连接 fork 一个进程,通过附加到共享内存池来维护共享数据结构。 Oracle 还可以在“共享服务器”模式下工作,(IIRC)也以这种方式工作。
'Guru's Guide'中的第三本书系列详细介绍了SQL Server 2000的内部架构;在大多数方面,SQL Server 2005 并没有显着的不同。除此之外,这还讨论了线程管理。作为奖励,本书的前半部分对 Win32 系统编程的关键方面进行了很好的概述,作为数据库服务器体系结构审查的背景知识提供。
关于sql-server-2005 - SQL Server 如何维护连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/609882/