达梦8 并行查询方式
在达梦数据库DM8中,并行查询功能通过利用多个CPU和磁盘设备的处理能力来优化查询任务的性能,使得单个SQL语句能够被多个线程处理,从而提高查询效率。以下是并行查询功能的详细介绍:
自动并行查询
当发起一个查询时,SQL语句会自动采用并行方式查询数据。使用自动并行模式时,相关参数有三个:
- MAX_PARALLEL_DEGREE: 设置默认并行任务个数。
- PARALLEL_POLICY: 设置并行策略(0表示不支持并行,1表示自动并行模式,2表示手动并行模式)。
- PARALLEL_THRD_NUM: 设置并行工作线程个数。
1. 查询并行策略
可以通过以下SQL语句查询当前并行策略:
SELECT para_name, para_value FROM v$dm_ini WHERE para_name='PARALLEL_POLICY';
2. 设置自动并行查询
要将查询设置为自动并行模式,可以使用以下命令:
SP_SET_PARA_VALUE(2, 'PARALLEL_POLICY', 1);
注意,这个参数是静态参数,修改完成后需要重启数据库服务。
3. 自动并行查询验证
可以通过以下SQL语句验证并行查询设置:
EXPLAIN SELECT DEPARTMENT_ID, COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;
手动并行查询
在SQL语句运行时,可以手动指定并行度,以优化特定的SQL语句。使用手动并行模式时,相关参数有两个:
- PARALLEL_POLICY
- PARALLEL_THRD_NUM
1. 设置手动并行查询
将查询设置为手动并行模式:
SP_SET_PARA_VALUE(2, 'PARALLEL_POLICY', 2);
2. 关闭并行查询
如果不需要并行查询,可以使用以下命令:
EXPLAIN SELECT DEPARTMENT_ID, COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;
3. 手动开启并行查询
可以通过以下命令手动指定并行度:
EXPLAIN SELECT /*+PARALLEL(6)*/ DEPARTMENT_ID, COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;
注意事项
并行查询能够优化SQL语句,提升响应速度,但并不是所有的查询都适合并行查询。是否开启并行查询还需根据CPU数量及其繁忙程度来决定。
通过以上配置和策略,达梦数据库的并行查询功能可以有效利用多CPU服务器的资源,优化查询任务的性能。
https://eco.dameng.com 达梦社区