Oracle 多线程 Parallel优化

基于并行查询要启动并行进程、分配任务与系统资源、合并结果集,都是比较消耗硬件资源的,优化时通常在逻辑上没有明显进步空间才使用硬件优化方式,故启用Parallel前应该考虑:
1、当前数据库设备有充足硬件资源,
2、查询表的数据量很大,超过一千万,可通过改变Parallel明显提高效率,
3、系统的当前负载较低,执行任务时不影响其它业务的使用,

1、开启parallel功能的语句

alter session enable parallel dml;

语法:/*+parallel(table_short_name,cash_number)*/

2、测试不同的parallel

A、默认不开parallel

测试结果
1、14.708s
2、15.462s
3、13.852s

 select  count(*)
  from user_tables t
  left join user_tab_comments v
    on t.TABLE_NAME = v.TABLE_NAME
 where Length(comments)<>8
 order by num_rows desc;

B、打开parallel

测试结果
1、9.179s
2、10.917s
3、9.098s

 alter session enable parallel dml;
 select  /*+parallel(t,32)(v,32)*/ count(*) --多表示例
  from user_tables t
  left join user_tab_comments v
    on t.TABLE_NAME = v.TABLE_NAME
where Length(comments)<>5
 order by num_rows desc;
3、查看Oracle能利用的最大并行度
  • cpu_count表示cpu数
  • parallel_threads_per_cpu表示每个cpu允许的并行进程数
  • default情况下,并行数为cpu_count*parallel_threads_per_cpu
SQL> show parameters cpu
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cpu_count                            integer     80
parallel_threads_per_cpu             integer     2
resource_manager_cpu_allocation      integer     80
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值