合适的并行度DOP对于良好的并行性能很关键。Oracle会按如下方式设定DOP:
1、如果指定或请求了并行执行,但是没有指定DOP,默认DOP会设置为该系统上CPU内核数量的两倍。对于RAC系统,DOP值会是整个集群内核数量的两倍。默认值是由配置参数“PARALLEL_ THREADS_PER_CPU”控制的。
2、对于Oracle 11g R2之后的版本,如果“ PARALLEL_DEGREE_POLICY”被设置为“AUTO”,Oracle将根据被执行的运行性质和涉及对象的大小自动调整DOP值。
3、如果“PARALLEL_ADAPTIVE_MULTI_USER”被设置为“TRUE”,Oracle将基于该系统的整个负载调整DOP。当系统承受更重的负载时,DOP值将会减少。
4、在Oracle 11g或者更高版本中,如果“PARALLEL_IO_CAP ”被设置为TRUE,Oracle将把DOP限制为IO子系统可以支持的值。这些IO子系统限制可以通过“DBMS_RESOURCE_ MANAGERCALIBRATE_IO”存储过程计算。
5、DOP可以被指定到表或者索引一级,可以通过在“CREATE TABLE”,“CREATE INDEX”,“ALTER TABLE”或者“ALTER INDEX”中使用“PARALLEL ”从句来实现。
6、“PARALLEL ”关键字可以被用来指定某个查询中指定表的DOP。
7、不管任何其它设置,DOP不能超过“PARALLEL_MAX_SERVERS”可以支持的数量。对于大部分SQL语句,服务器数量需要是请求DOP的两倍。为给那些只为获得答案的看众节省时间。提前下个结论,
mysql目前暂不具备并行运行某一查询的能力
。相信很多人有一个误解,似乎MySQL 54对某一查询带来的性能改进是非常巨大的。事实上,这需要针对具体应用来讲,如果追求某个具体查询的响应时间,54 将比51或之前的版本差。简单的来说,54提高的是并发量,而不是减少单条语句的执行时间。
初次看到这个话题的人要注意几个概念,并行和多线程不是同一个概念。“同时进行”的技术分很多类,有
查询间的并行,
查询内的并行和 *** 作内的并行
。举个生活中的例子,
如果你与其他人合租房子的话,早上起来后,多个人可以同时刷牙,洗脸和做饭,大家各忙各的(虽然女房客可能会给厕所加上mutex而其他人只能在原地spin)。单单这套房子来说,它在较短的时间内解决了好几个人的早上洗漱问题。这就是查询间并发了。
早上诸多行动中,以刷牙、做饭、吃饭这三个动作为例,我们通常的做法是把微波炉转上,然后刷牙,刷牙结束后,早饭也弄好了(至少我是这么做的),这样我们达到了查询内的并行。
再细化下去,现在加一个动作:整理电脑包,按照上一种方式我们可以按这样的顺序做事情:做饭刷牙 02 02 02—》 02 02 02吃饭 02 02 02 02 — -》02 整理电脑包
如果你有两只手的话,我们可以用一只手刷牙,另外一只手整理电脑包,这样进一步缩短你的运行时间,这样你就做到了 *** 作内的并行。
总结起来:第一种情况整体吞吐量很大,但个人的准备时间可能更长了。第二种情况,个人的处理时间减少了。 第三种情况,个人的处理时间进一步减少。
有兴趣的人可以在
database system concepts
这本书中了解相关概念。查询间的并行对于数据库管理软件来说是再正常不过的功能,所以下面我们将直接跳过这类“同时进行”。从理论上讲,数据库的多个模块:IO、SQL解析和SQL执行等都可以达到并行执行的目的。
通过将关系划分到多个磁盘来减少从磁盘检索关系所需的时间,从而使得数据库IO可以并行执行。另外在一个查询中的多个联接 *** 作和排序 *** 作也可并行发生。对等值联接和自然联接, 可以将两个输入关系划分到多个处理器上, 各处理器在本地计算联接
当然以上讨论的一切一切都基于CPU是多核的。
但是目前我个人不支持mysql并行化,这也符合很大一部分mysql开发人员的意见。理由:
就mysql目前的应用来看,使用者更在意mysql数据库的吞吐量,而不是效应速度(当然了,响应速度也是很重要的)。mysql目前的简单架构replication可大幅提高数据库端的吞吐量。
目前现存的其他开源技术亦能满足并行查询的需求如hadoop、map reduce。
最后,我们还可以利用mysql proxy来达到并行的目的。查询在mysql proxy中被划分成多个部分,各个部分可在不同的mysql服务器上查询获得数据,再由mysql proxy合并返回给读者。建索引时,我们为了建索引快,会加上并行,加上并行之后,此列索引就会是并行了。访问有并行度的索引时,CBO可能可能会考虑并行执行,这可能会引发一些问题,如在服务器资源紧张的时候用并行会引起更加严重的争用。当使用并行后,需要把并行度改回来。\x0d\SQL> drop table test purge;\x0d\SQL> create table test as select from dba_objects;\x0d\SQL> create index ind_t_object_id on test(object_id) parallel 4 ;\x0d\SQL> select sdegree\x0d\from dba_indexes s\x0d\where sindex_name = upper('ind_t_object_id');\x0d\DEGREE\x0d\----------------------------------------\x0d\4\x0d\\x0d\SQL> alter index ind_t_object_id noparallel;\x0d\\x0d\SQL> select sdegree\x0d\from dba_indexes s\x0d\where sindex_name = upper('ind_t_object_id');\x0d\DEGREE\x0d\----------------------------------------\x0d\1如果不是服务器负荷很大的话那就是网络自身问题,当然如果服务器由于执行站点机的请求而且是并行 *** 作的话负荷是比较大的,特别是磁盘 *** 作比较多很可能会出现服务器不响应的情况,另外网络自身情况比如不稳定,或是网络有大量数据传输导致阻塞也有可能,具体要分析当出现不响应情况时候,服务器在干什么,是不是有什么大量的 *** 作或者网络是不是有大量数据在传输等等,你说以前正常的现在不正常那网络自身估值的可能性比较大,用ftp传一个东西检查一下网络,看看是否有丢包问题一:并行输入品 什么意思 并行与直行并行输入这个词是日本出现的,有人说并行输入品就是水货,其实不能完全这么说。并行输入在日本是合法的,而水货则不合法。我们前面说过,表厂在各地区都有正规的专卖店和代理商,理论上,这个地区的其他商户如果想销售某个品牌的手表时,应当像这些具有资格的店铺或代理商进货。但是日本的很多表店并未向这些机构进货,而是向能够提供更低价格的其他地区代理商进货,比如您在日本购入的劳力士很多是香港的保卡,但是他们这样做并没有偷漏相应的税费,是合法的,受损失的是那些正经资格的代理机构。说到这里,有些朋友会问了,那为什么香港的表跑到日本去绕了一圈反而比在香港买还便宜呢?呵呵,其实很好解释啊,零售价格和批发价格会一样吗?代理商给一次购买100只表的人的价格会和给你一次只买一只表的价格一样吗?直行就好解释了,就是正经的日本行货。通常,日本的执行输入在底盖上都会有日文的直行输入的背贴,很好分辨。
问题二:并行是什么意思 并行是指“并排行走”或“同时实行或实施”。
1 犹言兼程。
《史记・孙子吴起列传》:“乃弃其步军,与其轻锐倍日并行逐之。”
2 同时进行。
《东周列国志》第二回 :“幽王曰:‘爱卿请将息,朕自有处分。’即日传旨道:‘太子宜臼,好勇无礼,不能将顺,权发去申国,听申侯教训。东宫太傅、少傅等官,辅导无状,并行削职!’”
3 并排行进。
冰心《寄小读者》十六:“回忆去夏南行,晨过苏州,火车与城墙并行数里。”
问题三:并行的含义 并行是指“并排行走”或“同时实行或实施”。 在 *** 作系统中,若干个程序段同时在系统中运行,这些程序的执行在时间上是重叠的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,无论从微观还是宏观,程序都是一起执行的。对比地,并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。广泛的,并行是事件在系统中同时发生的趋势。当然,并行是一种自然现象。在现实世界中,任何时候都会有许多事件同时发生。当设计软件以监测和控制现实世界中的系统时,我们就必须处理这种自然的并行。当处理软件系统中的并行问题时,通常有两个非常重要的方面:能够检测并响应以任意顺序出现的外部事件,并确保在要求的最短时间内作出响应。如果各个并行活动独立进行(即以完全平行的方式进行),问题就相对简单,我们只需建立单独的程序来处理每项活动。设计并行系统之所以困难,主要是由并行活动之间的交互造成的。当并行活动进行交互时,需要加以协调。并行示例:不进行交互的平行活动所涉及的并行问题比较简单。当平行活动进行交互或共享相同资源时,并行问题就变得重要起来。公路交通系统可作为一种形象的类比。不同道路上的平行车流基本上不会相互影响,所以很少产生问题。相邻车道上的平行车流为了交互时的安全,需要作一些协调。而在十字路口则会发生非常剧烈的交互,在这里需要进行周密的协调。
问题四:什么是并行是什么意思 并行就是并排而行的意思
问题五:并行度是什么意思 查看dba_tables数据字典时,可以发现有“DEGREE”字段,这个字段表示的就是数据表的并行度。这个参数的设置,关系着数据库的I/O,以及sql的执行效率。
并行度的优点就是能够最大限度的利用机器的多个cpu资源,是多个cpu同时工作,从而达到提高数据库工作效率的目的。在系统空闲时间,使用并行是个不错的选择,但是好东西总是相对而言,没有绝对的好坏,不当的使用,同样会引起数据库的新的问题产生。
1、 此参数的大小设置
orcl@ SCOTT> select table_name,degree from user_tables;
TABLE_NAME DEGREE
------------------------------ --------------------
T1 1
TAB_REGISTER 1
EMP 1
EMP_BAK 1
SALGRADE 1
BONUS 1
DEPT 1
LETTER_USER 1
T2 1
BASE_LOG 1
T 1
通过上例的例子大家可以观察,此参数的默认值为1,这个数值,我们认为的增加,当设置表的并行度非常高的时候,sql优化器将可能对表进行全表扫描,引起 Direct Path Read 等待 。
在使用并行查询前需要慎重考虑, 因为并行查询尽管能提高程序的响应时间, 但是会
消耗比较多的资源。 对于低配置的数据库服务器需要慎重。 此外, 需要确认并行度的设置要与 IO 系统的配置相符(建议并行度为 2~4 CPU 数) 。
2、 并行度的修改
alter table t parallel(degree 1);------直接指定表的并行度
alter table t parallel; ----------设置表的并行度为default
3、 如何在sql语句中使用表的并行度,并选择合适的并行等级
示例:使用并行查询的执行计划
并行度为4
orcl@ SCOTT> SELECT /+ PARALLEL(4) /
2 MAX(sal),
3 AVG(m)
4 FROM emp,dept
5 WHERE empdeptno=deptdeptno
6 GROUP BY 1>>
问题六:串行和并行是什么意思? 并行和串行只不过是一个接口
像鼠标就是串行接口的
而打印机就是并行接口的。
问题七:并行和串行分别是什么意思 上面各位的回答都是说的数据传输,其实并行和串行概念很广: 1、在数据传输方面是说数据多位同时传输还是单位传输的问题.不能说哪种更快,主要看时钟、传输距离、物理介质、电压形式(如果是电信号)等.如果同等的以上条件,并行传输要快,但是增加了复杂度,大型计算机或通信设备上会采用,一般的个人电脑、手机等通信设备则会采用更方便的传行传输. 2、在计算方面是说计算机同时执行指令的方式.巨型机、大型机一般是并行计算,而个人电脑则相反.并行计算要快得多,但同样复杂度也高. 总之,同等条件下,并行在速度上有优势,但成本和方便上串行有优势.现在大家所说的串行传输快只是并行传输的成本太高,不方便罢了. 更正上面 frankchen 的错误,计算机的并口不是23针.是25针的.
问题八:求教:“并行”是什么意思 字面上应该就是一同齐着走。可以包含一起,看齐,同行。或者某种行动是一起的,所谓道不同不相为谋。
问题九:并行和串行分别是什么意思 1、数据传送方式不同:串口传输方式为数据排成一行、一位一位送出接收也一样,并口传输8位数据一次送出。
2、针脚不同:串口针脚少,并口针脚多。
3、用途不同:串口现在只用作控制接口,并口多用作打印机、扫描仪等接口。
什么是并口和串口有什么区别并行与串行
串口一般指硬件上的接口一般的PC主板都提供两个串口
而并口一般指指打印接口!,,
通常并口是两排除23针而对应的串口是两排九针当然在老式的机子也有串口是23针的但很少了因为随着计算机的发展,这种老式的板几乎被淘汰了还有VGA接口(Video Graphic Array)是三排15针的,也就是一般主机连接显示器的那个接口!!
当然有并行与串行的数据传输方式,注意我们这里讲的传输方式是并行或串行的注意概念不要乱!
我们平常都讲串口硬盘!或并口硬盘其实是不规范的!
指的数据的传输方式
如并行硬盘就是我们普通的PATA硬盘由于并行的多信号数据传输的相互干扰所以其速度的极限是在75MB/S 以苹果手机为例,链接服务器时出现问题的意思是网络连接出现问题导致的,建议更换一个连接网络,重新尝试连接。
服务器(Server),也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。通常分为文件服务器(能使用户在其它计算机访问文件)、数据库服务器、应用程序服务器、WEB服务器等。服务器的构成包括处理器、硬盘、内存、系统总线等,相比通用的计算机架构,在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求更高。
非x86服务器:包括大型机、小型机和UNIX服务器,它们是使用RISC(精简指令集)或EPIC(并行指令代码)处理器,并且主要采用UNIX和其它专用 *** 作系统的服务器,精简指令集处理器主要有IBM公司的POWER和PowerPC处理器,SUN与富士通公司合作研发的SPARC处理器、EPIC处理器主要是Intel研发的安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统中。连接服务器失败有着几种情况:
1、网络没有连接。
2、可能是网线有问题。
3、如果是玩游戏的话,出现了连接服务器失败的话,还有可能是游戏服务器有问题,玩游戏的人多,或者是游戏在更新。
以上几种情况都会出现连接服务器失败。
:
服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。
服务器具有高速的CPU运算能力、长时间的可靠运行、强大的I/O外部数据吞吐能力以及更好的扩展性。
根据服务器所提供的服务,一般来说服务器都具备承担响应服务请求、承担服务、保障服务的能力。
服务器作为电子设备,其内部的结构十分的复杂,但与普通的计算机内部结构相差不大,如:cpu、硬盘、内存,系统、系统总线等。
根据体系结构不同,服务器可以分成两大重要的类别:IA架构服务器和RISC架构服务器。
1IA架构的服务器采用的是CISC体系结构,即复杂指令集体系结构,这种体系结构的特点是指令较长,指令的功能较强,单个指令可执行的功能较多,这样我们可以通过增加运算单元,使一个指令所执行的功能能够同时并行执行来提高运算能力。长时间以来两种体系结构一直在相互竞争中成长,都取得了快速的发展。IA架构的服务器采用了开放体系结构,因而有了大量的硬件和软件的支持者,在近年有了长足的发展。[
2RISC架构服务器采用得CPU是所谓的精简指令集的处理器,精简指令集CPU的主要特点是采用定长指令,使用流水线执行指令,这样一个指令的处理可以分成几个阶段,处理器设置不同的处理单元执行指令的不同阶段,比如指令处理如果分成三个阶段,当第N条指令处在第三个处理阶段时,第N+1条指令将处在第二个处理阶段,第N+2条指令将处在第一个处理阶段。并行概念
并行执行(parallel execution)是Oracle企业版才有的特性(标准版中没有这个特性),指能够将一个大型串行任务(任何DML,或者一般的DDL)物理地划分为多个较小的部分,这些较小的部分可以同时得到处理。
并行包括:
并行查询:这是指能使用多个 *** 作系统进程或线程来执行一个查询。Oracle会发现能并行执行的 *** 作(如全表扫描或大规模排序),并创建一个查询计划来实现)。
并行DML(PDML):这在本质上与并行查询很相似,但是PDML主要是使用并行处理来执行修改(INSERT、UPDATE、DELETE和MERGE)。
并行DDL:并行DDL是指Oracle能并行地执行大规模的DDL *** 作。例如,索引重建、创建一个新索引、数据加载以及大表的重组等都可以使用并行处理。
并行恢复:这是指数据库能并行地执行实例(甚至介质)恢复,以减少从故障恢复所需的时间。
过程并行化:这是指能并行地运行所开发的代码。
何时使用并行
在应用并行执行之前,需要保证以下两点成立:
必须有一个非常大的任务,如对50GB数据进行全面扫描。
必须有足够的可用资源(CPU、I/O、内存)。在并行全面扫描50GB数据之前,你要确保有足够的空闲CPU(以容纳并行进程),还要有足够的I/O通道。
如果只有一个小任务(通常OLTP系统中执行的查询就是这种典型的小任务),或者你的可用资源不足(这也是OLTP系统中很典型的情况),其中CPU和I/O资源通常已经得到最大限度的使用,那就根本不用考虑并行执行。
如果一个任务只需要几秒(或更短时间)就能串行地完成,引入并行执行后,相关的管理开销可能会让整个过程花费更长的时间。
举例如,写一页文档若12个人来写,需要开会分段等,可能并不如一个人来写更快。而如果写1200页,12个人写需要的时间只为原来的1/12,就算分配任务可能也就1/12,还是比一个人写要快多了。
并行查询
并行查询允许将一个SQL SELECT语句划分为多个较小的查询,每个部分的查询并发地运行,然后会将各个部分的结果组合起来,提供最终的答案。
在并行进程和扫描文件之间并不存在1对1映射,可以多个进程扫描同一个文件。
各个并行进程可称为并行执行服务器(parallel execution server),有时也称为并行查询(parallel
query,PQ)从属进程。各个并行执行服务器都是单独的会话,就像是专业服务器进程一样连接数据库。每个并行执行服务器分别负责扫描表中一个部分(各
个部分都不重叠),汇总其结果子集,将其输出发回给协调服务器(即原始会话的服务器进程),它再将这些子结果汇总为最终答案。
在默认情况下,Oracle是不启用并行查询的。启用并行查询有多种方法,可以直接在查询中使用一个提示,或者修改表要求考虑并行执行路径等。
并行查询方法
1)暗示hints式,临时有效
select /+parallel(table_name num)/ count() from table_name;
多表关联时多表并行:
select /+parallel(table_name1,num1) parallel(table_name2,num2)/ count() from table_name1, table_name2;
2)alter table对象式,长期有效
alter table table_name parallel num;
3)alter session会话式,会话生命周期有效
alter session force parallel query parallel num;
4)并行DDL式,会话生命周期有效
alter session enable parallel dml;
对于前两种方式,若省略num则Oracle将自动根据负载确定并行度。并行度要随着系统上工作负载的增减而变化。如果有充足的空闲资源,并行度会
上升;如果可用资源有限,并行度则会下降。这样就不会为机器强加一个固定的并行度。利用这种方法,允许Oracle动态地增加或减少查询所需的并发资源
量。
查看默认并行数
1)确定会话SID
select sid from v$mystat where rownum = 1;
2)在其他会话中查询
select sid,qcsid,server#,degree from v$px_session where qcsid = num;
一般而言,如果能访问尽可能多的资源(CPU、内存和I/O),并行执行就能最好地发挥作用。但这并不是说如果整个数据集都在一个磁盘上,就从并行
查询得不到任何好处。不过如果整个数据集都在一个磁盘上,可能确实不如使用多个磁盘那样能有更多收获。即使使用一个磁盘,在响应时间上也可能可以得到一定
的速度提升。原因在于:给定的一个并行执行服务器在统计行时并不读取这些行,反之亦然。所以,与执行串行相比,两个并行执行服务器可以在更短的时间内完成
所有行的统计。
数据分布在多个物理设备上可以提高I/O,如表分区、跨磁盘等。
在Oracle 11g Release2及以上版本中,引入了一项新功能来限制资源过度使用:并行语句排除(Parallel
Statement
Queuing,PSQ)。使用PSQ时,数据库会限制并发执行的并行查询数,并把更多的并行请求放在一个执行队列中。CPU资源用尽时数据库会阻止新的
请求变为活动状态。这些请求并没有失败,它们只是会延迟开始,也就是说它们将排队。资源可用时,数据库就会开始执行队列中的查询。
并行DML
Oracle文档将并行DML(PDML)一词的范围限制为只包括INSERT、UPDATE、DELETE和MERGE(不像平常的DML那样还
包括SELECT)。在PDML期间,Oracle可以使用多个并行执行服务器来执行INSERT、UPDATE、DELETE或MERGE,而不是只利
用一个串行进程。在一个有充足I/O带宽的多CPU主机上,对于大规模的DML *** 作,可能会得到很大的速度提升。
不过,不能把PDML当成提高OLTP应用速度的一个特性。因为并行 *** 作设计为要充分、完全地利用一台机器上的所有资源。通过这种设计,一个用户可
以完全使用机器上的所有磁盘、CPU和内存。在某些数据仓库中(有大量数据,而用户很少),这可能正是你想要的。而在一个OLTP系统中(大量用户都在做
很短、很快的事务),可能就不能希望如此了,你不想让用户能够完全占用机器资源。
类似于Oracle执行的分布式查询,PDML *** 作采用同样的方式执行,即每个并行执行服务器相当于一个单独数据库实例中的一个进程。这些事务都结束后,会执行一个相当于快速2PC的过程来提交这些单独的独立事务。这些事务要么都由PDML协调会话提交,要么无一提交。
由于PDML采用的一种伪分布式的实现,因此存在一些限制:
PDML *** 作期间不支持触发器。这是一个很合理的限制,因为触发器可能会向更新增加大量开销,而你使用PDML的本来目的是为了更快一些,这两方面是矛盾的,不能放在一起。
PDML期间,不支持某些声明方式的引用完整性约束,因为表中的每一片(部分)会在单独的会话中作为单独的事务进行修改。例如,PDML *** 作不支持自引用完整性。如果真的支持自引用完整性,可能会出现死锁和其他锁定问题。
在提交或回滚之前,不能访问用PDML修改的表。
PDML不支持高级复制(因为复制特性的实现要基于触发器)。
不支持延迟约束(也就是说,采用延迟模式的约束)。
如果表是分区的,PDML只可能在有位图索引或LOB列的表上执行,而且并行度取决于分区数。在这种情况下,无法在分区内并行执行一个 *** 作,因为每个分区只有一个并行执行服务器来处理。
执行PDML时不支持分布式事务。
PDML不支持聚簇表。
并行DDL
从维护的观点看,以及从管理的角度来说,并行DDL才是Oracle中并行执行最突出的优点。如果认为并行查询主要是为最终用户设计的,那么并行
DDL则是为DBA/开发人员设计的。如果没有并行执行,DBA将很难真正充分利用硬件的全部能力。但如果利用并行执行,则完全可以做到。以下SQL
DDL命令允许“并行化”:
CREATE INDEX:多个并行执行服务器可以扫描表、对数据排序,并把有序的段写出到索引结构。
CREATE TABLE AS SELECT:执行SELECT的查询可以使用并行查询来执行,表加载本身可以并行完成。
ALTER INDEX REBUILD:索引结构可以并行重建。
ALTER TABLE MOVE:表可以并行移动。
ALTER TABLE SPLIT|COALESCE PARTITION:单个表分区可以并行地分解或合并。
ALTER INDEX SPLIT PARTITION:索引分区可以并行地分解。
前4个命令还适用于单个的表/索引分区,也就是说,可以并行地MOVE一个表的单个分区。
并行DDL和使用外部表的数据加载
利用并行DDL,再加上外部表,就能通过一个简单的CREATE TABLE AS SELECT or INSERT /+ APPEND
/来实现并行直接路径加载。不用再编写脚本,不必再分解文件,也不用协调要运行的N个脚本。简单地说,通过结合并行DDL和外部表,不仅提供了纯粹的易
用性,而且全无性能损失。
并行DDL和区段截断
并行DDL依赖于直接路径 *** 作。也就是说,数据不传递到缓冲区缓存以便以后写出;而是由一个 *** 作(如CREATE TABLE AS
SELECT)来创建新的区段,并直接写入这些区段,数据直接从查询写到磁盘(放在这些新分配的区段中)。每个并行执行服务器执行自己的部分CREATE
TABLE AS SELECT工作,并且都会写至自己的区段。INSERT /+ APPEND
/(直接路径插入)会在一个段的HWM“之上“写,每个并行执行服务器再写至其自己的一组区段,而不会与其他并行执行服务器共享。因此,如果执行一个并
行CREATE TABLE AS
SELECT,并使用4个并行执行服务器来创建表,就至少有4个分区,可能还会更多。每个并行执行服务器会分配其自己的区段,向其写入,等填满时,再分配
另一个新的区段,并行执行服务器不会使用由其他并行执行服务器非品牌的区段。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)