点击上方蓝色字体关注我们

达梦数据库为具有多个 CPU 的数据库服务器提供并行查询的功能,以优化查询任务的性能。数据库服务器只有具有多个 CPU,才能使用并行执行查询操作,来提高查询任务的速度。并行查询技术的出现,使得单个 SQL 语句能利用多个 CPU 和磁盘设备的处理能力。其优势在于可以通过多个线程来处理查询任务,从而提高查询的效率。


环境说明

本文介绍的是达梦数据库管理系统DM8的并行查询功能。


自动并行查询

步骤说明
发起一个查询时,sql语句会自动采用并行的方式查询数据。使用自动并行模式查询时,相关参数有三个:
MAX_PARALLEL_DEGREE 用来设置默认并行任务个数;
PARALLEL_POLICY 用来设置并行策略;
PARALLEL_THRD_NUM 用来设置并行工作线程个数;
查询并行策略:(0 表示不支持并行;1 表示自动并行模式;2 表示手动并行模式)。
SQL> select para_name,para_value from v$dm_ini where para_name='PARALLEL_POLICY';

将查询设置为自动并行查询:
SQL> sp_set_para_value(2,'PARALLEL_POLICY',1);
该参数是静态参数,修改完成需要重启数据库服务。

自动并行查询验证:
SQL> EXPLAIN SELECT DEPARTMENT_ID,COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;

手动并行查询
在sql语句运行时手动指定parallel。为了优化某个sql语句,sql语句需要开启并行时,最好是手动指定并行。使用手动并行模式查询时,相关参数有两个:
PARALLEL_POLICY
PARALLEL_THRD_NUM
将查询设置为自动并行查询:
SQL> sp_set_para_value(2,'PARALLEL_POLICY',2);

不开并行:
SQL> EXPLAIN SELECT DEPARTMENT_ID,COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;

手动开启并行:
EXPLAIN SELECT/*+PARALLEL(6)*/ DEPARTMENT_ID,COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;

注意:并行查询能在一定程度上优化sql语句,提升sql语句的响应速度。并不是所有的查询都适合并行查询,还要根据CPU的个数以及繁忙程度来决定是否需要开启并行查询。


总结

本次介绍达梦数据库并行查询。以上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!
作者:林夕
排版:达梦培训中心


一周热文




GDMBASE图数据库实战笔记


达梦E学
微信号:DM-Elearning
扫码关注查看更多内容
点击下方在看,分享本文










