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

【达梦干货攻略】DM8并行查询

达梦大学 2020-12-24
1819


达梦数据库为具有多个 CPU 的数据库服务器提供并行查询的功能,以优化查询任务的性能。数据库服务器只有具有多个 CPU,才能使用并行执行查询操作,来提高查询任务的速度。

并行查询技术的出现,使得单个 SQL 语句能利用多个 CPU 和磁盘设备的处理能力。其优势在于可以通过多个线程来处理查询任务,从而提高查询的效率。

本章重点介绍DM8的并行查询功能。


自动并行查询


发起一个查询时,sql语句会自动采用并行的方式查询数据。使用自动并行模式查询时,相关参数有三个:

MAX_PARALLEL_DEGREE 用来设置默认并行任务个数

PARALLEL_POLICY  用来设置并行策略

PARALLEL_THRD_NUM  用来设置并行工作线程个数


1、查询并行策略:

(0 表示不支持并行;1 表示自动并行模式;2 表示手动并行模式)

    SQL> select para_name,para_value from v$dm_ini where para_name='PARALLEL_POLICY';

    2、将查询设置为自动并行查询:

      SQL> sp_set_para_value(2,'PARALLEL_POLICY',1);

      该参数是静态参数,修改完成需要重启数据库服务。

      3、自动并行查询验证:

        SQL> EXPLAIN SELECT DEPARTMENT_ID,COUNT(*) FROM DMHR.EMPLOYEE GROUP BY DEPARTMENT_ID;


        手动并行查询


        在sql语句运行时手动指定parallel。为了优化某个sql语句,sql语句需要开启并行时,最好是手动指定并行。使用手动并行模式查询时,相关参数有两个:

        PARALLEL_POLICY

        PARALLEL_THRD_NUM

        1、将查询设置为手动并行查询:

          SQL> sp_set_para_value(2,'PARALLEL_POLICY',2);

          2、不开并行:

            SQL> 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语句,提升sql语句的响应速度。并不是所有的查询都适合并行查询,还要根据CPU的个数以及繁忙程度来决定是否需要开启并行查询。



              好,以上是本次分享内容,希望能给大家带来帮助,感谢大家。


              往期回顾

              干货攻略丨DM8 AWR报告

              学习分享丨初识达梦数据库

              免费公开课DM存储过程和触发器

              开班动态丨您有一份DM8-DCP进阶秘籍待开启

              最后修改时间:2020-12-24 15:00:50
              文章转载自达梦大学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论