SQL Server 并行查询执行全解析
1. 并行查询执行概述
随着计算机硬件的发展,存储、内存和 CPU 性能都有了显著提升,同时数据库的数据量也在迅速增长。用户对数据分析的需求日益增加,且期望查询能够在瞬间完成。为了满足这些需求,并行查询执行应运而生。
并行查询执行是指将数据分割成小块,同时在多个处理器核心上进行处理的技术。SQL Server 拥有成熟的并行查询处理系统,理解其并行查询能力对于分析查询计划和控制并行度至关重要。
1.1 并行处理模型
并行处理主要有两种常见模型:
- 工厂流水线模型 :每个核心负责一个单一的操作,数据在核心之间传递。例如汽车工厂中,一个人安装车门把手,另一个人安装窗户。
- 基于流的模型 :每个核心负责一组数据,并执行所有所需的操作。类似于一个人独立完成一辆汽车的组装。
SQL Server 和许多其他数据库产品采用基于流的模型,原因在于计算机处理器能够在数据已存在于本地缓存时快速高效地切换任务。从主内存或主存储获取数据的成本远高于切换到新任务,因此在将数据转移到其他处理器或内存位置之前,尽可能多地处理数据是有利的。此外,基于流的模型在数据量增长时通常具有更好的扩展性。
1.2 查询计划中的并行性基础
查询计划可以是完全串行的(使用单个工作线程处理),也可以包含一个或多个并行分支(使用多个线程处理)。查询处理器可以将多个并行流合并为一个流,也可以从一个流创建并行流。
每个并行区域使用相同数量的线程,该数量称为并行度(DOP),由服务器设置、计划提示和运行时
超级会员免费看
订阅专栏 解锁全文
4819

被折叠的 条评论
为什么被折叠?



