DM8并行查询

达梦数据库为具有多个 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的个数以及繁忙程度来决定是否需要开启并行查询。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值