SQL Server性能优化:并行处理与配置策略
1. 并行处理概述
在SQL Server中,并行处理的理念是“能用两个线程更快完成的任务,为何只用一个?” SQL Server在引擎层面具备并行处理能力,可用于多种目的和场景。
1.1 并行查询处理
在编译查询以构建查询计划时,SQL Server可能判定某些操作(如索引扫描)由多个任务(工作线程)并行执行会更快。不过,并行查询处理在SQL Server社区常遭诟病,因为它会消耗更多CPU资源。尽管每次SQL Server选择使用并行查询处理运算符时都有调优的可能,但在一些场景下,并行查询仍是不错的选择,尤其在数据仓库应用中。
以下是一个观察并行查询处理的示例,假设已还原完整的WideWorldImporters示例:
USE [WideWorldImporters]
GO
SET STATISTICS XML ON
GO
SELECT COUNT(*) FROM Sales.Invoices WITH (INDEX=1)
GO
执行上述代码后,结果会包含查询计划的可视化表示。并行查询计划有两个指标:
- 并行运算符(Parallelism operator)
- 聚集索引扫描的执行次数为4,这表明有4个工作线程用于扫描聚集索引。
1.2 并行执行的其他场景
并行执行还应用于SQL Server的其他领域,如下表所示:
| 操作场景 | 并行执行说明 |
| — | — |
| 创建数据库 | 为每
超级会员免费看
订阅专栏 解锁全文

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



