首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 生活 > oracle 授权视图(Oracle误区hint指定)
oracle 授权视图(Oracle误区hint指定)
更新时间:2024-08-15 19:31:32
概述

之前我一直不理解为什么做并行DML之前要加上:alter session enable parallel dml,总以为hint指定就可以了,实际上是错误的,下面记录下这个问题,并且总结下并行这块内容。


并行(PARALLEL)和OLAP系统

并行的实现机制是:首先,Oracle会创建一个进程用于协调并行服务进程之间的信息传递,这个协调进程将需要操作的数据集(比如表的数据块)分割成很多部分,称为并行处理单元,然后并行协调进程给每个并行进程分配一个数据单元。比如有四个并行服务进程,他们就会同时处理各自分配的单元,当一个并行服务进程处理完毕后,协调进程就会给它们分配另外的单元,如此反复,直到表上的数据都处理完毕,最后协调进程负责将每个小的集合合并为一个大集合作为最终的执行结果,返回给用户。

oracle 授权视图(Oracle误区hint指定)1

并行处理的机制实际上就是把一个要扫描的数据集分成很多小数据集,Oracle会启动几个并行服务进程同时处理这些小数据集,最后将这些结果汇总,作为最终的处理结果返回给用户。

这种数据并行处理方式在OLAP系统中非常有用,OLAP系统的表通常来说都是非常大,如果系统的CPU比较多,让所有的CPU共同来处理这些数据,效果就会比串行执行要高得多。

然而对于OLTP系统,通常来讲,并行并不合适,原因是OLTP系统上几乎在所有的SQL操作中,数据访问路径基本上以索引访问为主,并且返回结果集非常小,这样的SQL操作的处理速度一般非常快,不需要启用并行。


并行处理的机制

当Oracle数据库启动的时候,实例会根据初始化参数 PARALLEL_MIN_SERVERS=n的值来预先分配n个并行服务进程,当一条SQL被CBO判断为需要并行执行时发出SQL的会话进程变成并行协助进程,它按照并行执行度的值来分配进程服务器进程。

首先协调进程会使用ORACLE启动时根据参数: parallel_min_servers=n的值启动相应的并行服务进程,如果启动的并行服务器进程数不足以满足并行度要求的并行服务进程数,则并行协调进程将额外启动并行服务进程以提供更多的并行服务进程来满足执行的需求。然后并行协调进程将要处理的对象划分成小数据片,分给并行服务进程处理;并行服务进程处理完毕后将结果发送给并行协调进程,然后由并行协调进程将处理结果汇总并发送给用户。

上面讲的是一个并行处理的基本流程。实际上,在一个并行执行的过程中,还存在着并行服务进程之间的通信问题。

下面看下有没alter session enable parallel dml所产生的效果。


没有执行alter session enable parallel dml产生的执行计划

EXPLAIN PLAN FOR UPDATE /* parallel(t 8)*/ test1 t SET object_id=1; SELECT * FROM table (DBMS_XPLAN.display(NULL, NULL, 'BASIC PARALLEL'));

oracle 授权视图(Oracle误区hint指定)2

当我看到执行计划里面有Q1,00这样的描述,就以为并行度hint生效了,但是我没注意到,这里并行度只用在对test1表的全盘扫描上,并没有用在update上。


执行alter session enable parallel dml产生的执行计划

oracle 授权视图(Oracle误区hint指定)3

这里可以看到执行计划上的差别:这次不止全盘扫描时用到了并行度,而且update时也用上了并行度,这才是我们需要的!!

ps:注意最后要把session的并行度关掉:

alter session disable parallel dml;


关于Oracle的多线程处理功能,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会多核同时工作,来提高效率。但本身启动这个功能,也是要消耗资源与性能的。所有,一般都会在返回记录数大于100万时使用,效果也会比较明显。

后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

oracle 授权视图(Oracle误区hint指定)4

,
相关推荐RECOMMEND
羊角蜜生长期几个月(需要注意什么)
羊角蜜生长期几个月?羊角蜜生长期大约需要1到2个月的时间通常将羊角蜜在一月份进行育苗,到二月中下旬进行定植,这样大约在四月份的时候就可以收获羊角蜜了,现在小编就来说说关于羊角蜜生长期几个月?下面内容希...
诗和词的区别(4个不同教你区分诗和词)
诗和词的区别?形式不同诗句式整齐,而词不整齐格律诗只用平声韵,一韵到底,隔句押韵,首句可压可不压词平仄通压,中间可以换韵,韵脚疏密不定,但由格律规定格律诗第二、第三两联必须对仗,而词的对仗却灵活得多,...
otc币市场现状(场外交易商OTC虚拟币市场出入金的脆弱桥梁)
#比特币[超话]#今年开始,越来越多的人都因为因比特币交易而被冻结银行卡,我为此还专门写了一篇文章《对于因比特币交易而被冻结银行卡的几个应对方案》,通过评论发现了几个问题,就是有一些人不单单是被冻结银...
中国画和西方画有哪些不同(国画都有哪几种画法?)
中国画和西方画有哪些不同?分类不同:中国画分为工笔、写意;另一种分法是山水、花鸟、人物等;西画分为油画、版画、水彩、雕塑等,下面我们就来聊聊关于中国画和西方画有哪些不同?接下来我们就一起去了解一下吧!...
牙疼牙齿疼是什么原因(牙痛牙齿痛是什么原因)
牙齿痛是什么原因?一、龋齿龋齿一种由口腔中多种因素复合作用所导致的牙齿硬组织进行性病损,表现为无机质脱矿和有机质分解,随病程发展而从色泽改变到形成实质性病损的演变过程。龋齿是细菌性疾病,因此它可以继发...
情侣间十种睡姿(情侣间的几种睡姿)
,