SQL Server 2000中的并行处理和执行计划中的位图运算符 摘抄自:SQLServer 2000并行处理和位图简介 刘志斌 并行查询介绍 Degree of Parallelism(并行度) 一个查询使用并行来处理时,SQL Server为该查询分配多个线程,每个线程使用一个CPU进行操作。 Degree
SQL Server 2000中的并行处理和执行计划中的位图运算符
摘抄自:SQLServer 2000并行处理和位图简介 刘志斌
并行查询介绍
Degree of Parallelism(并行度)
一个查询使用并行来处理时,SQL Server为该查询分配多个线程,每个线程使用一个CPU进行操作。
Degree of Parallelism就是SQL Server为并行查询分配的线程数量,也表明这个并行查询将使用多少个CPU进行并行处理。
Exchange Oprators(交换操作)
查询语句的执行计划中,通常是并行操作和串行操作结合在一起。并行操作要求将输入数据流(data stream)切分成
多个(即degree of parallelism)部分,分别分配给各个线程进行并行处理。
并行查询包括几个数据流的交换操作(exchange operator),用以管理并行计划的执行。
Distribute Steams(分布流)
执行计划中显示为Parallelism/Distribute Steams。通常情况下,如果在一个串行操作之后紧接着一个并行操作,
则这个并行操作将从前一个串行操作接收一个input stream。
Distribute Steams就是并行查询中将单个input stream分发到多个output stream中的操作。
简述
例如一个serial table scan(串行表扫描) 产生一个4000条记录的output stream,
假设在这个table scan之后是一个并行操作,则在这两个操作之间必须需要一个Distribute Steams操作,
向并行操作的各个线程分发input stream。
如果degree of parallelism为4,SQL Server根据关键字段,将这个4000条记录的stream分发成4个大致相当的stream,
分别作为4个线程的input。 Distribute Streams操作之后,每一条input stream中的记录,将出现在某一个output stream中,,
记录的内容和格式不会发生任何变化。
SQL Server自动在output stream中保留input stream中各记录的相对顺序。
示例
示例中要使用到2个表
TblBuyerItem 4 ( 5 UserID NVARCHAR(40) NOT NULL , 6 OrgID NVARCHAR(40) NOT NULL , )