oracle插入未调用并行,oracle并行之概念篇

概念 串行执行: 串行执行时候,sql语句由一个server process处理(既只运行在一个cpu上),所以sql语句所能使用的资源受cpu限制,除去异步i/o外server process 处理cpu操作时,不可访问disk。 并行处理: 就是多个slave process一起处理同一个sql语句,server pr

概念

串行执行:串行执行时候,sql语句由一个server process处理(既只运行在一个cpu上),所以sql语句所能使用的资源受cpu限制,除去异步i/o外server process

处理cpu操作时,不可访问disk。

并行处理:就是多个slave process一起处理同一个sql语句,server process充当query coordinator(创建slave process,分配任务,收集合并slave process传的结果返回给client)。

并行执行工作粒度:

1.分区粒度(paratition granule):一个分区 或一个子分区 为一个工作内容被分配(分区segment上)。就是操作PX BLOCK ITERATOR。2.块范围粒度(block range granule):segment上一个范围内的block,运行时动态定义(不是parse时)。就是操作PX PARTION ITERATOR。

注释:

*oracle倾向于block range granule,因为block range granule可以让slave process们得到的工作量比较平均,而分区粒度 有可能会使有的slave process得到的分区的工作量很大,导致时间响应更长会影响到并行执行的总效率。

*sql语句执行2个或2个以上独立的操作(比如,非相关性操作join,scan(如全表扫描等)&order by这样会使用2组slave process,一组scan,一组order by)

*按scan&order by这个例 子,2组slave process,第一组select,那么select中的并行(slave process 操作)叫操作内并行,即单个操作内并行化。那么scan与order by就是2次操作内并行。

*2组slave process用来执行一个sql语句 叫操作间并行(组1 sacn ,组2 orderby 之间操作就是操作间并行)。

*操作间并行时,会有多组slave process通信,例如组1scan数据 给组2orderby,组1就是生产者(producer),组2就是消费者(consumer),按生产者与消费者执行的。

不同操作,就会选择不同的分配(数据)记录方式给另一个操作:

1.广播:每个生产者发送所有数据给消费者

2.range:生产者将执定范围的记录发给不同的消费者,会应用动态范围分区决定哪条记录给哪个消费者(对于orde by操作根据order by子句中字段range分区)

3.loop:记录会被平均分给每个消费者(即生产者每loop循环一次,就给一个消费者发一条记录)

4.hash:生产者用hash函数发送数据给消费者,动态应用hash分区来决定哪条记录给哪个消费者(对于group by根据group by子句使用的字段进行hash )

5.qc随机:每个生产者将所有记录发给query coordinator(随机),这是常用方法

6.qc顺序:每个生产者将所有记录发给query coordinator(顺序很重要),并行orderby用这个给query coordinator(server process)发送数据

#上面的广播方法就是执行计划中 px send qc(random/order)操作或是px send(qc 随机)操作 , 其父操作就是px coordator(查询调度)。

上面的range/hash/loop就是执行计划中px send qc

range/hash/loop 操作 ,其父操作就是px recive(接收者,消费者)。

并行操作间关系(执行计划中in-out部分)

p-s:并行发送数据给串行

p-p:(有2组slaves process时使用),一个并行操作将数据发送给另一个并行操作

pcwp:相同slave process并行执行一个操作及其父操作,无通讯

pcwc:相同slave process并行执行一个操作及其子操作,无通讯

s-p:串行发送数据给并行,效率差(1.单一进程产生数据没有多个进程消费数据快,消费者花很多时间等数据而不是处理数据;2.串行执行操作和并行执行操作发送数据有一些不必要的通讯)

参数控制并行:

1.parallel_min_servers:

instance 启动数据库实例时就会自动创建的slaves process数量,这样当server process请求时候就不需要重新创建了,直接使用就可以。当server process请求的数量超过这个设置值时,就会创建新的slave process,新创建的在使用完成后会在slave process pool(oracle会管理一个slave process pool,query coordinator process既server

process从这个pool中请求slave process,sql语句开始使用,使用后slave process返回pool)。

保存5分钟若还未人使用 就释放,所以 参数parallel_min_servers控制这个pool中启始slave process数量,defalut 0,表示需要时候才创建。

什么时候需要修改该参数:一般在出现os thread startup 这个event(表示sql语句花时间等待slave process)才修改这个值。

2.parallel_max_server:

控制pool中slave process最大数量(可以设置成cpu_count ,8-10倍)。

若parallel_adaptive_multi_user(为boolean 类型的参数)为TRUE (10G default为TRUE)时,仅允许有限数目的用户按默认的并行程度运行。

这个限度由_parallel_adaptive_max_users控制。 _parallel_adaptive_max_users表示maximum number of users running with default DOP。例如,_parallel_adaptive_max_users为 2,即 指定 现在显示为2个USER。

#查看server process pool状态

SQL> select * from v$px_process_sysstat where upper(statistic) like ‘SERVER%’;

STATISTIC VALUE

—————————— ———-

Servers In Use 0~~使用的

Servers Available 2~~

Servers Started 2~~~启动过几个

Servers Shutdown 0

Servers Highwater 2~~~最高到达

Servers Cleaned Up 0

Server Sessions 2

7 rows selected.

*sga中有一个table queue内存给消费者发送数据,每对(生产者&消费者)对应一个table queue处理2组从属进程间通信,table queue 可以放在shared pool,也可以large pool

(其实table queue就是 px msg pool),当10G SGA_TARGET>0 or 11g memory_target>0时 都是存在large pool,parallel_automatic_tuning=true放在large pool,10G 默认为TRUE,11g

默认就是放在large pool,parallel_automatic_tuning在11G已经废弃向后兼容保留了(The PARALLEL_AUTOMATIC_TUNING parameter is deprecated. It is retained for backward compatibility only.)

关于这个parallel_automatic_tuning更详细的说明

When PARALLEL_AUTOMATIC_TUNING is set to true, Oracle determines the default values for parameters that control parallel execution. In addition to setting this parameter, you must specify the PARALLEL clause for the target tables in the system. Oracle then

tunes all subsequent parallel operations automatically.

If you used parallel execution in a previous release and are now enabling PARALLEL_AUTOMATIC_TUNING, then you should reduce the amount of memory allocated from the shared pool to account for the decreased demand on that pool. This memory will now be allocated

from the large pool, and will be computed automatically if LARGE_POOL_SIZE is not specified.

As part of the automatic tuning, Oracle will enable the PARALLEL_ADAPTIVE_MULTI_USER parameter. You can override any of the system-provided defaults if desired.

每个table queue由3个buffer (块)组成,在rac里为4个。每个buffer大小由parallel_execution_message_size控制,默认为2152bytes,parallel_automatic_tuning=true,parallel_execution_message_size=4096 bytes。

可以设置大点16k,32k,64K(内存要足够)

#########large pool size

large_pool_size>=parallel_max_servers^2.parallel_execution_message_size.3(rac .4)

SQL> select * from v$sgastat where upper(name)=’PX MSG POOL’;

POOL NAME BYTES

———— ————————– ———-

large pool PX msg pool 902160

所以可以认为table queue就是px msg pool

SQL> select pool,name ,bytes/1024/1024/1024 from v$sgastat where upper(pool) like ‘%LARGE%’;

POOL NAME BYTES/1024/1024/1024

———— ————————– ——————–

large pool PX msg pool .000840202

large pool free memory .003066048 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三维数据平滑处理_黑白象片的密度信息 卫星数据处理 遥感制图 三维建模 善图科技...

黑白象片的密度信息象片上的黑白变化,可划分为若干等级,此等级称之为灰阶。象片上的灰阶数受洗印技术及目视分辨能力的限制,一般不超过10个灰阶。灰阶较多时,象片上层次分明易于分辨一些细节。但灰阶的增多必导至对比度相对下降&a…

oracle左连接数据会对不上吗,一周工作总结–左连接造成的一些问题-Oracle

一周工作总结–左连接造成的一些问题今天有同事告诉我,有个SQL执行了好久好久执行不出来,我说好就是多久?她说一天左右了。真是令人咋舌的SQL。于是我要来了SQL看了看执行计划,确实让人咋舌。下图中就是执行计划的截图&#xff1a…

android开发 视图联动_新版首页技术设计和实现方案(Android)

动效设计1、两级吸顶CoordinatorLayoutAppBarLayout可以轻松的实现一级吸顶的功能,两级吸顶并不支持。要实现两级吸顶,可以有两种思考:一,在此基础之上再完成一次吸顶;二,直接重写两次吸顶的逻辑&#xff0…

oracle 获取一周七天,Oracle中求出本礼拜第一天和第七天的日期

<1>西方应用是周日是first day&#xff0c;中国人思维则为&#xff0c;周日是最后一天。其实&#xff0c;只需要计算到周一&#xff0c;就可直接获得周日。<2>应用实例--Sundayselect to_date(next_day(to_date(2015-02-09 22:00:00, yyyy-mm-dd hh24:mi:ss) - 7, …

网页设计上机考试原题_全国计算机三级信息安全考试 经验分享

为什么选择信息安全&#xff1f;误打误撞报的名&#xff0c;正好又听说是三级里面最好过的。1&#xff09;时间&#xff1a;九月份的考试&#xff0c;大概六月份报名。我在9月2日开学后&#xff0c;才开始准备的&#xff0c;也就二十几天的时间&#xff0c;而且我白天课不少&am…

oracle to_char 数值,oracle to_char格式数值

C:\Users\XXX>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on 星期日 8月 28 15:51:42 2016Copyright (c) 1982, 2010, Oracle. All Rights Reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Par…

linux环境特性的文件夹,在Linux环境下如何消减可执行文件或者动态库的大小

为了简化描述&#xff0c;下文提到目标时&#xff0c;如无特殊说明&#xff0c;均指代目标可执行文件或者目标动态库。操作步骤如下&#xff1a;选型时&#xff0c;在同等功能时&#xff0c;尽量选择代码量少、占用空间小的开源的软件。控制C特性的使用&#xff0c;如无必要&am…

newifi mini固件_如何在vmware虚拟机中安装OpenWrt系统,含x86固件编译教程

"OpenWrt项目是针对嵌入式设备的Linux操作系统"&#xff0c; 这是官方给出的定义。OpenWrt确实是一个非常好的嵌入式学习系统&#xff0c;目前市面上上千款设备支持运行OpenWrt&#xff0c;如小米路由、newifi、netgear路由、360路由等。各大wifi芯片厂商sdk开始采用…

宝塔linux忘记密码,宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办

因为性能和安全性上的突出优势&#xff0c;现在用宝塔LINUX面板配置网站环境的站长越来越多&#xff0c;但一些粗心大意的站长经常会遇到这个问题&#xff0c;密码想不起来了&#xff0c;入口链接忘记了&#xff0c;宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办呢&…

minitab怎么算西格玛水平_六西格玛黑带培训工具因子分析的使用

六西格玛黑带培训工具因子分析的使用-张驰咨询一、该命令用于将数据结构简化为较少的量&#xff0c;因子分析的重点是确定能够解释数据变异大的因子数量。二、对话框内容。1、variables&#xff1a;输入需包含在分析中的变量栏。2、Numberoffactorstoextract&#xff1a;输入需…

ssh linux 配置文件详解,Linux ssh服务常用配置的详细描述及建议配置

SSH服务常用选项描述配置文件&#xff1a; /etc/ssh/sshd_config1、AddressFamliy any&#xff1b;支持那IP协议&#xff1b;比如ipv4,ipv6,&#xff1b;默认 any&#xff1b;2、Port 22 &#xff1a;SSH端口号配置&#xff0c;默认22;3、Protocol 2 &#xff1b; SSH协议的2版…

python set集合内部实现_Python 实现集合Set的示例

Python的集合set原理集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合&#xff0c;注意&#xff1a;创建一个空集合必须用 set() 而不是 { }&#xff0c;因为 { } 是用来创建一个空字典。class Array(object):def __init__(self, size32, ini…

linux curl 编译命令,linux 编译 curl 出错

编译curl make 死活不通过&#xff0c;唉执行参数如下&#xff0c;谢谢各位帮忙看看这一步一切正常rootdebian:~/curl-7.45.0# ./configure --with-sslmake一顿编译之后 ...... 然后出错了../lib/.libs/libcurl.so: undefined reference to SSLv2_client_method../lib/.libs/li…

r语言echarts画箱线图_R语言之数据可视化---交互式图表recharts

环图一.安装方式&#xff1a;if (!require(devtools)) library(devtools)install_github("madlogos/recharts")二.使用方法&#xff1a;1.散点图/气泡图echartr(iris, xSepalWidth, yPetalWidth)多个维度&#xff1a;series控制echartr(iris, xSepalWidth, yPetalWid…

linux内核err实现,Linux中IS_ERR()函数的理解

在Linux源码中的fs部分&#xff0c;经常会碰到这样的函数(位于kernel/include/linux/fs.h)&#xff1a;/** Kernel pointers have redundant information, so we can use a* scheme where we can return either an error code or a dentry* pointer with the same return value…

can例程 ecu_ECU程序及CAN总线实现

内容介绍原文档由会员 usactu 发布ECU程序及CAN总线实现1.3万字 34页包括开题报告和任务书摘 要ECU程序就像汽车的大脑&#xff0c;控制着汽车的动力源泉心脏—发动机&#xff0c;控制着汽车底盘&#xff0c;控制着各个车门&#xff0c;控制着各个仪表盘&#xff0c;控制这整个…

linux 禁用smb服务,Samba 4.11 发布,更好的可扩展性与默认禁用SMB1

Samba 4.11是这个SMB/CIFS/AD实现的最新大功能更新&#xff0c;用于提供与Linux和其他平台更好的Windows互操作性。 Samba 4.11的变化非常多&#xff0c;我们有点惊讶它没有被称为Samba 5.0。也许最令人兴奋的是Samba 4.11具有很大的可扩展性改进&#xff0c;它应该能够扩展到1…

airtest测试网页_Airtest自动化测试超级详细教程

Airtest自动化测试1. 安装AirtestIDEAirtestIDE下载地址。我下载的是AirtestIDE_2019-09-10_py3_Mac10-12.dmg。下载完成之后&#xff0c;直接安装即可。2. 设备连接2.1 部署iOS-Tagentgit clone gitgithub.com:AirtestProject/iOS-Tagent.git把手机连接到电脑上然后 打开Xcode…

linux git命令如何简写,简写Git用法,基本命令

git的简单介绍安装首先&#xff0c;你可以试着输入git&#xff0c;看看系统有没有安装Git&#xff1a;graceWIN-VIMIDCOQM7L:/var/www/html/BBB$ gitThe program git is currently not installed. You can install it by typing:sudo apt-get install git若显示,代表已安装grac…

elementui table渲染不出来_测试开发不会前端?ElementUI你需要了解一下

在测试部门内平台类工具的开发需求越来越多&#xff0c;因此也推动了测试开发职位薪水逐步升高。如果开发一个web测试平台&#xff0c;前端技术是必不可少的&#xff0c;像是js、css等。一般在企业内&#xff0c;一个正式产品的前后端开发是职责分明的。端开发只负责业务逻辑&a…