Parallel database query (PDQ) ,即并行数据库查询。当处理决策支持类(或数据仓库类查询)查询时,PDQ 特性可以用来极大地提高数据库查询处理的性能。启用PDQ后,GBase 8s 可以将查询操作分布到多个不同的处理器上并行处理。例如,对于一个含有聚集运算(sum()、max()等)的 SQL 查询,GBase 8s 可以将聚集运算分布到多个CPU处理器上运行。这样可以提高单个 SQL 处理的速度,减少单个SQL 运行的时间。
PDQ 通过将数据库查询任务拆分为多个并行任务,同时利用现代计算机多CPU、多磁盘、大内存的资源能力来最大化处理性能。并行 PDQ 操作包括:并行扫描(Parallel scans)、并行关联(Parallel Joins)、并行排序(Parallel Sorts)、并行分组(Parallel Groups)和并行聚集操作(Parallel Aggregates)。
通常,并行数据库查询将 SQL 查询的执行分布到多个处理器上运行,PDQ的目标就是改进复杂数据计算查询任务的性能。
不是所有查询都能利用到 PDQ,以下查询不能利用到 PDQ:
- 查询任务不包含任何并行操作,例如前面提到的 5 个并行操作;
- 查询使用 CURSOR STABILITY 隔离级别;
- 查询包含 FOR UPDATE 或者 WITH HOLD 的字句;
- 包含子查询;
- 查询语句包含 SPL 函数,如:SELECT * FROM tabname WHERE col1 =spl_name(col2)。