线程和任务体系结构
线程是操作系统功能,允许将应用程序逻辑分到几个并发的执行路径中。当复杂应用程序包含可同时执行的多个任务时,此功能非常有用。
操作系统执行应用程序实例时,它将创建一个单元(称为进程)来管理该实例。此进程包含一个执行线程。它是由应用程序代码执行的一系列编程指令。例如,如果一个简单应用程序具有一组可串行执行的指令,则整个应用程序只有一个执行路径或线程。更复杂的应用程序可能有几个任务,这些任务可以一前一后地执行,而不是串行执行。通过为每个任务启动独立的进程,应用程序可以实现串行操作。但是,启动进程会消耗大量资源。而应用程序可启动独立的线程。相对来说,这将消耗较少的资源。而且,可以独立于与某进程关联的其他线程来安排每个线程的执行。
线程使复杂的应用程序能够更有效地利用 CPU,即使在只有一个 CPU 的计算机上也是如此。如果只有一个 CPU,则每次只能执行一个线程。如果一个线程执行不使用 CPU 的长时间运行的操作(如磁盘读/写操作),则第一个操作完成之前可以执行另一个线程。通过在其他线程等待操作完成的同时执行线程,应用程序可以最大限度地利用 CPU。对于大量占用磁盘 I/O 的多用户应用程序(如数据库服务器),这尤其有效。具有多个微处理器 (CPU) 的计算机可以同时在每个 CPU 上执行一个线程。例如,如果某计算机有八个 CPU,则它可以同时执行八个线程。
本节涉及的主题
SQL Server 批处理或任务计划
说明如何为批处理或任务安排线程或纤程。为 CPU 分配线程
说明操作系统如何在计算机的微处理器间平均分布 SQL Server 实例中的线程。还介绍 affinity mask 配置选项。使用 lightweight pooling 选项
说明在什么条件下打开轻型池选项可能是有用的。线程和纤程的执行
说明如何执行线程或纤程,并介绍用于设置执行优先级的选项。热添加 CPU
说明了 SQL Server 如何支持热添加 CPU。在具有超过 64 个 CPU 的计算机上运行 SQL Server 的最佳做法
提供在具有超过 64 个 CPU 的计算机上运行 SQL Server 实例时的最佳做法信息。