暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】DM8并行查询

达梦E学 2024-08-23
324

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

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


01

环境说明

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

数据库:达梦数据库DM8


02

自动并行查询


步骤说明

发起一个查询时,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的个数以及繁忙程度来决定是否需要开启并行查询。




          03

          总结

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

          作者:林夕

          排版:达梦培训中心


          04

          一周热文

          开班通知 | 第25期DM8-DCA线上培训班招生中

          开班通知 | 第26期DM8-DCP线上培训班招生中

          干货攻略 |GDMBASE图数据库实战笔记

          干货攻略 | 动态SQL与静态SQL的不同表现

          2024一带一路暨金砖大赛 | “基于信创平台的软件应用与开发赛项” 报名启动!


          达梦E学

          微信号:DM-Elearning

          扫码关注查看更多内容

          点击下方在看,分享本文

          文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论