欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    DBA-I 第一章 ORACLE体系结构(二).docx

    • 资源ID:1679863       资源大小:146.29KB        全文页数:17页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DBA-I 第一章 ORACLE体系结构(二).docx

    ORAC1.E体系结构(二)我们前面学习了ORAC1.E如何实现客户的请求并连接到实例。客户端请求通过1.ISTENER审核,1.ISTENER会指示ORAC1.E分配一个效劳涔进程,并在客户端进程和效劳泯进程间建立了连接会话.我们称专有连接会话,ORAC1.E实例提供的是专有效劳。就是所谓的dedica1.e模式。默认情况下就是dedicate模式。ORAC1.E除了提供专有连接会话,还提供共享连接会话,ORAC1.E实例也提供共享效劳.我们接卜.来学习ORAe1.E提供的共享式效劳涔是怎么样实现的,有什么优势。共享效劳器大家可能是第次接触,有点不太好理解,这个不着急,现阶段只要初步了解下可以了。我举个例子:你们谁安装的的orac1.e是在IinUX环境卜的?你建立一个sqp1.us会话,看看是不是多出一个OraCIe的OS进程gc1c117K711760014:53ptx/O(K):<X):(XIrIwrnpMIP1.USfuture/futurcW11g我们看到,专有模式卜°新建一个会话,就多出了一个进程。但是共享模式和这个不样,你开很多个会话在效劳器上表现为1个进程。就是1个进程多个会话一起用,就是共享效劳器的特点。那我再问卜.大家,共享模式3新开一个会话,进程一定不会增加吗?不一定的,有可能还是会增加0比方我们假设一个共享效劳器管理10个会话,现在已经有IO个了,再连一个就是11个,哪么还是会增加个进程的。共享效劳器模式的主耍优势就是节约内存.好,有了上面的经验,我们来看看共享模式的特点。先看下书店的书柜陈列图我们前面讲的都是专有效劳模式的连接。我们再来看共享效劳器模式下,静安图45分店是如何效劳的。当小丽发出一个请求,要批发100O本中国机械出版社2009年后出版的经济类书,并通过轮船运到宁波自己的公司,并按日期进行排序掴绑存放存入小丽公司的仓库。如果采用共享效劳模式,那涉及下面儿个动作:店里为小明(用户进程D分配J'售货处小英(效劳器进程1)为她效劳小英相小丽取了这1000本中国机械出版社2009年后出版的经济类书O小英并按出版日期排完序,并进行包装。并反应给小雨检查是否按自己规定的顺序包装。小英招包装后的拈放到司机小思(效劳器进程2)货车里,这样司机小思来效劳小丽,帮这批货运道码头。司机小思将货开往码头这时售货员小英可以为小勇(用户进程2)去卖书。也就是个售货员小英跟小勇建立了会话,并进行效劳。小英可以效劳多个不同会话的任务(一、小丽批发经济类书,二、小勇买书),而不需要小英一直为小丽效劳,所以也不需要等待小丽在清小英卜.一个动作前无所事事。这时小英既知道小丽的情况,也知道小勇的情况。对应于ORAC1.E就是一个效劳器进程可以有多个会话(SESSION),多个会话信息需要让一个效劳共享,所以叫共享效劳器进程。司机小思帮助把货搬到船上,他的任务结束,开车回书店。船长小川(效劳器进程3符货运到宁波。司机小宁(效劳器进程4)将货运到小丽宁波的公司。小丽这次的批发任务共有四个人梢它完成(为了简化,这里省略了ORK1.E调度器参与的角色),这些人都是受静安书店的委托效劳于小丽.而每个效劳器进程都会在执行完任务后反应给客户会话信息上图对应于ORAC1.E就是一个会话可以由多个效劳器进程来完成“而在专有效劳模式卜.,那小英要一直为小丽效劳,一直到把货运到小丽公司为止,它们建立的会话就结束了,而且进程也随之消亡。在这期间小英要既当营业员、司机、船长,而I1.这期间小丽要有事情要处理,比方去银行转帐,那么小英只有等待小丽回来才能继续工作,而不能去效劳其他顾客,这很显然大量浪费了小英的效率。在ORRC1.E模式下,专有模式会话进程和效劳器进程一一对应,效劳器进程耍效劳到结束,最后一起消亡.而在共享效劳模式下,那小英在卖完书后,即使小丽这个时候去收银台交费.小英也不需要等待她,马上可.以去处理新的客户小勇,这样售货员的效率就提高了。即使小丽又要重新需要小英处理问题,如小阍拿了收银凭据,小英就要停下小勇的效劳,把小雨的书给她,并输入电脑,再回头处理小勇的工作。在OR八C1.E模式卜.共享模式,用户进程不需要效劳器进程处理的的时候,效劳器进程可以效劳别的用户进程,当原来的用户进程继续请求这个效劳器进程时,可以打断后一个用户进程,继续处理前一个用户进程的工作。这里小丽再次找小英时,她们已经彼此认识,已经是朋友了,不需要再重新打交道,重新建立信任关系,节约了之间沟通的本钱.那小英知道了小丽的姓名,任务起始时间,结束时间,当前的状态,任务的目的等。也同样知道了小勇相应的信息。这也是会话信息,会话信息对所r的进程可以共享的,开始备课上节课我们开始DBA-I的第一节课给大家整体介绍了下OraCIe效劳器的体系结构及其主要组件,我们简单回忆下。第一个问题:ORAC1.ESERVER由什么组成?ORAC1.E效劳由个实例和个数据库组成.ORAC1.ESERVER的概念是,个ORAC1.ESERvER就是个DATABASE库文件加上一个INSTANCE,按我们图书馆的例子就是上海图节蚀的静安书城店提供的就是一个ORAC1.ES1.-RVERe第二个问题:ORAC1.E实例(INSTANCE)由什么组成?主内存结构(SGA)+后台进程那RAC的概念是什么?RAC的概念就是多个实例关联一个数据库,ORAC1.ESERVER=1个DB+1个INSTANCEINSTANCE=MEMORY+PROCESSRC=N个ORAC1.ESERVER-1个DB+N个INSTANCE第三个问题:分别简述下SGA.PGA,UGA是什么?第四个问题:我们知道ORAC1.E的物理结构指的是OS里直接能查看到的文件。那ORAC1.EDB有哪几种物理文件?Contro1.fi1.esDatafi1.esRedo1.ogfi1.es第五个问题:简单说下专有效劳罂和共享效劳器的区别?专有效劳器一个效劳器进程专门效劳一个用户进程,即使用户进程空闲,效劳器进程还是继续等待随时为该会话效劳,不能去干其他事情。专有模式会话进程和效劳器进程一一时应,效劳器进程要效劳到结束,最后一起消亡。共享效劳器个效劳器进程可以效劳多个用户进程,个用户进程也可以被多个效劳器进程效劳。共享模式,用户进程不需要效劳器进程处理的的时候,效劳器进程可以效劳别的用户进程,当原来的用户进程继续请求这个效劳黯进程时,可以打断后个用户进程,维续处理前个用户进程的工作。大家结合我们图书馆小丽买书,住货历小丽,司机小思,船长小川,司机小宁为小丽效劳的例子再理解下。我们上节课讲到,在共享效劳模式卜.,那小英在卖完书后,即使小丽这个时候去收银台交费,小英也不需要等待她,马上可以去处理新的客户小勇,这样售货员的效率就提高了。即使小丽又要至新需要小英处理问题,如小丽拿了收银凭据,小英就要停下小勇的效劳,把小丽的书给她,并输入电脑,再回头处理小勇的工作。这是小丽再次找小英时,她们已经彼此认识,已经是朋友1.不需耍再重新打交道,重新建立信任关系,节约了之间沟通的本钱。那小英知道了小明的姓名,任务起始时间,结束时间,当前的状态,任务的目的等。也同样知道了小勇相应的信息。这些是会话信息,会话信息对于所有的进程可以共享的。所以这里涉及进程中共享的信息如F:会话信息:这次任务起始时间,结束时间,当前的状态,排序的反应信息、任务的目的等.(TRSOR信息:CURSOR是什么?还有如小明批发这1000本书的方法等在也是可以让另一个售货员共享的,什么意思呢?就有点类似管理中的专人负贵,的特点,你只负货某一件事情,整体类似于流水线的概念。这在ORAC1.E中通过SQ1.语句实现,并将执行方案记录下来,我们称共享SQ1.区,放在共享池中。但是对于每发送一个语句,在专有模式,相对丁效劳器进程是私有的,所以我们称私有SQ1.g,输入进程内存。但是对于共享效劳模式,个会话的信息可以让所有的进程共享,那么属于会话生命周期里,这个私有SQ1.区可以是共享的,也可以是执行完后吃式关闭.我们后面公学到SESSIONCACHECURSOR,私有SQ1.区或者称C1.RSOR.个SQI.就会对应个CURSOR.在C1.RSOR美例时释放,CURSOR(私有SQ1.区)这里有两个局部搜索100o本书方法(执行方案)有些称为固定局部,如小丽的姓名(绑定变量),这些信息在整个会话中可以不马上移放你既可以指定我不想要这些信息(一些程序的显式关闭游标),如procdure中c1.osecursor也可以让它自动去除这些信息(默认的SQ1.语句执行完就关闭游标),如se1.ect*fromtab;O当前取书已经到第999本了。这些是运行时状态的信息,等SQ1.语句执行完就释放掉了。注意,每个会话会限制CURSOR数(任务数),如小丽刚刚的会话总共有四个效劳器进程效劳的四个任务。如果每次执行完一个CURSOR(任务)后不马上糅放这些CUROSR(任务)信息,那么超过openCUrSOrS数后会抛出OPenCUrSQr数超出错误,否则公占过多的资源“比方静安店最多效劳一个客户的子任务(CURSOR)数是3,比方卖书、司机运货到码头、45通过船运到宁波,而且每个任务做完后登记的信息没有去除,那么小宁要完成第四次子任务时候就不允许。这是因为怕一个大任务中小任务的信息太多造成大量内存使用。(特别是程序的循环操作,循环OPCnCUrSOr个SQ1.千次,不执行CIoSC就会发生上述问题)所以对于应用程序代码,要仔细考虑CuRSOR的释放机制.而上面的这些CURSOR信息在共享效劳模式是共享的,属于UGA,并存放在SG八中,在有大池的情况卜存放在大池。还有一局部内存是完全私有的,比方有些局部变此作为程序的栈空间,还有些私有工作空间,如排序区,HASHJOIN区,位图合并区等,它们是在执行的时候调用全局区的,我们称为CG(Ca1.1.G1.oba1.ArCa)调用全局区,执行完就释放。为了诚少资源使用,CGA执行完就择放,是运行时状态,别的进程是无法看到的,还有©栈空间调用完就释放的都是私有信息。但是执行结束后如果需要反应给用户会话的数橱,如SE1.ECT的FI-TCH,则需要保存区的数据提供用户反应信息,这些信息保存在哪里?是不是CGA?注意CGA属于PGAe如我们排序区可以设置保存空间,这样这些SQ1.执行完排序完后,不马上锋放给操作系统,而是释放给UGA,最后FETCH反应给SEI.ECT的用户.CGA属于PGA与其他的全局区不同,CGA(Ca1.1.G1.oba1.Area调用全局区)的存在是it间的.它只存在于一个调用过程中.而UGA可能属于PGA或者SGAPGA是一段包含一个Orac1.e效劳或后台进程的数据和控制信息的内存.PGA的大小依模与系统的配置.在专用效劳(DedicatedServer)模式下,一个效劳进程与一个用户进程相关,PGA就包括了堆空间和UGA.而UGA(USerG1.oba1.Area用户全局区)由用户会话数据、游标状态和索引区蛆成.在共享效劳OrrS)模式下,一个共享效劳进程被多个用户进程共享,此时UGA是SharedP1.或1.argePOOI的一局部(依隙与配置)此时UGA属于SGAUGA根据连接模式的区别而有所区别大家设想一下,一个CGA的返回要怎么返回给用户?放在UGA里。我们排序区可以设置保存空间,这样这些SQ1.执行完排序完后,不马上秆放给操作系统,而是理放给UGA,后FETcH反应给SE1.ECT的用户.而共享效劳模式UGA是共享内存,所以保存区排序在没有FETCH前可以使用,但是FEra1.后仍然不会保存这段内存,它还是会被样放的,我们将在第1章的后面儿节详细讲.这些私有局部,就象售货员的私密信息,都会涉及到实际的数据,如HASH表,所以其它住货员永远不会知道。否则就象中介公司的业务员互相之间知道了客户的详细信息,还可能佯在互相撬客户的情况。但是小丽的情况,传货员小英(效劳器进程D和司机小勇、小宁(效劳涔进程2,4)和脑长小川(效劳器进程3)都知道。所以小楣的信息是共享的,所以在共享效劳模式,UGA是在SGA里。共享效劳模式,也就是进程与£话之间是n:m的关系。在共享模式下,一个进程可以效劳多个会话,一个会话可以由多个进程效劳。好比一辆的士可以效劳多个人,而个人也可以坐多辆的士在共享下Uga不是pga的子堆,是SG八的子堆,但是Uga不会并发,因为单个会话不可能在同时有多个活动进程效劳它。Uga始终属下会话的,一个会话永远是侬序执行的,所以不会冲突.所以虽然共享但不会有1.atch的冲突。我们小丽的生命周期是把这货运到码头,然后运到宁波,这个会话才结束,而这期间有隹货员进程,司机进程和船长进程可以为其它用户效劳。关于共享效劳模式,我们会在体系架构(三)用的士的例子来详细举例,另外DBA11的第五章将介绍共享效劳器的配置。SGA的构成我们已经了解了什么是SGA,什么是PGA,那我们分别来详细展开这两大组件,来了解这些组件各自的作用,和它的构成。首先我们来学习SGA,一个实例只有一个SGA。SystemG1.oba1.Area(SGA)TheSGAconsistsofsevera1.memorystructures:-Sharedpoo1.- Databasebuffercache- Redo1.ogbuffer- Otherstructures(e.g.1.ockand1.atchmanagement,statistica1.data)Therearetwooptiona1.memorystructuresthatcanbeconfiguredwithintheSGA:-1.argepoo1.-Javapoo1.ORAC1.e112CocrffigNCOrIeCccporabcn2001.A1.1.ff1.h1.sresenre1.我们看到,SGR是由多个功能不同的共享内存组件构成.前面四个子组件是SGR必箸组件,在10G,I1.G会多出流池等。我们这里只说个SGA大概的组成,每个小的组件在之后会详细分析。O第一个组件:共享池,用来存放SQ1.解析树和字典对象定义的共享区域.第二个组件,数据库高速缓存区,用来存放业务数据的共享内存区域。O第三个组件,RI-DO日志缓存区,用来记录数据库的每个改动向殳,其中包括系统的改动和UV)O的改动(UNDO其实也是一次REDO)。第四个组件,其它共享资源,如1.OCK,ENQUEUE,1.TCH.统计数据。除了前3个组件是资源外,镇也是资源前3个组件的共享资源并发冲突可以用I.ATCH来管理,那1.ATCH本身也是种资源,还需要专门管理1.ATeH的UTCH来管理。另外,在91还仃其它2组可选的组件,分别是大池和JAVA?&,他们都跟共享池的功能类似,是它的替代品,用来实现某些特殊的请求。比方大池是用于存放对那些发杂的程序包分析、RMAN、UGA、异步IO等相关的数据,而JAVA池是用来存放JAVA存储过程的分析信息。那我们要搭建一个实例该如何规划这个实例的内存呢?就象我们要开一家静安书店,我们需要指定个开业筹备的方案,设置好各职能部门及所需要的门面。这个殍齐方案就是我们以后讲到的初始化参数。实例启动必须先划分内存,店要开业就必须要买下门面,那我们数据库该如何设置内存大小呢?特别是SGA。SGA的设笆SystemG1.oba1.Area(SGA) SGAisdynamicandsizedusingsga_max_size. SGAmemorya1.1.ocatedandtrackedingranu1.esbySGAcomponents- Contiguousvirtua1.memorya1.1.ocation- Sizebasedonsga_max_sizeORAC1.e1UC<<1)11grtOOrKkCorporatKn.2001A1.1.rf1.ttsrrrJ在91,ORAC1.E需要你先划分一个SGA的最大大小限额SGAJKAX_S1ZE,用于划出城大多少的内存给ORAC1.E共享内存使用.该参数只能通过文本参数修改或SpF1.1.E的设置,,并在垂起后生效。IOg实现SGA的自动管理,并设置了SgaJargN。我们称自动内存管理为ASMN,在11G,可以把PGA和SGA作为一个整体进行自动管理.SG也会使用到虚拟内存,在有些平台甚至可以固定在物理内存内。我们知道一个进程使用的物理内存,会需要相应大小的虚拟内存,所以要设置合理的虚拟内存大小,以支持系统正常运,专。通常情况:如果4G的物理内存,配巴4G或者8G虚拟内存就可以。内存分配需要按照颗粒大小来分配。比方颗粒是16M,原来总内存是32M,你把32M改为10M,那实际上会变成32M+16MF8M,.所以必须按照步长进行分配内存。如果SGA小于128M,那么步长是4M,否则是16M我们可以用卜面的字典来查当前系统的步长V$SGA_DYNAMIC_COMPONENTSSQ1.>se1.ectcomponent,CUrrent_size,GRANU1.E_SIZE/1024/1024as"GRANU1.E.S1.ZE(MB)"fromVSSGA-DYNAMIe.COMPONENTS,2COMPONENTCUITents<MB)GRANU1.E_S1.ZE(MB)MMMMsharedpoo1.MMM3264瓦MM1.argepoo1.16Sjavapoo1.3216streamspoo1.6416-IDEFAU1.Tbuffercache275216KEEPbuffercache016'RECYC1.Ebuffercache0DEFAU1.T2Kbuffercache016«1DEFAU1.T4Kbuffercache0】6,DEFAU1.TgKbuffercache0161DEFAU1.T16Kbuffercache0161DEFAU1.T32Kbuffercache0心ASMBufferCache016»113rowsse1.ected-我们了解了SGA的分配和SGA主要的几大组件,我们就需要深入了解几大组件的作用及它们间是如何配合的。先看看SGA的几大组件共享池OQAC1.e数据级冲区SharedPoo1.Thesharedpoo1.isusedtostorethemostrecent1.yexecutedSQ1.statementsandthemostrecent1.yuseddatadefinitions.Itconsistsoftwokeyperformance-re1.atedmemorystructures:-1.ibrarycache-Datadictionarycache SizedbytheparameterSHARED_POo1.SIZE.A1.TERSYSTEMSCTSHARED_Poo1._S1.zE-64M;115CopvngrteOradeCapoubon2001A1.1.r3MsreserveDatabaseBufferCache ConsistsOf1.ndependentsub-caches:- DB_CACHE_SIZE- DB_KEEP_CACHE_SIZE- DB_RECYC1.E_CACHE_SIZE Databasebuffercachecanbedynamica1.1.yresizedtogroworshrinkusinga1.tersystem.IA1.TERSYSTEMSETDBC«CHESIZE-96M; db_cacheadviceCanbesettogatherstatisticsforpredictingdifferentcachesizebehavior.ORACuet-19CocrjrKXKOOrac1.eCoc*aton2001A1.11ortsreservedPGAftUGAThesortspaceisin: ThePGAforadedicatedserverconnectionPGA,UGASharedpoo1.流JX1.1.rIfdataIIISORTAREASIZE=64000 Thesharedpoo1.forOrac1.eShareServerconnectionI至.ASORTAREARETAINEDSIZE=64000处理内存的机制我们还是用前面图书馆的例子来全面J'解ORAC1.E处理这些内存的机制。我们来举个例子,静安书店刚开业,小丽要买某一本书“CBO基础”,而且必须是圾新上架的书。因为小丽希望买到的是最新的“CBO基础",否则估计已经被很多人翻旧了。有个刚进静安书店的A隹货员接到了小丽的效劳,她们建立了买卖的会话关系。而I1.由于书店刚开业,A售货员第一次上班,从来不知道该如何去找这本书,A售货员脑子里不记得该如何去找这个书,那A售货员只能通过有限的知识去获取最快的方法找到这本书。她可以有几种选择:从抬架的第I本书开始,按书架的编号顺序找,直到找到第1本“CBO博础",然后再继续找第2本“CBO基础",然后按时间排序,直找到书架最后一本书。从店里的前台电脑里有一本书的检索目录,是按书名拼音排序的,用它来快速定位这本书,由于检索目录是按书名排序的,选取出来的书还要按日期排序,然后选出最新的一本“CBO基础"。但是决定哪种选择来获取“CBO基础”,这个工作不是由A隹货员来做,A售优员首先会把这个请求交给店里的一个检索员,让他决定这本书小丽有没有权限买让检索员评估哪种方法能更快的拿到久腐基础"这就类似于SQ1.的语意分析、语法分析、CBO分析。检索员负责管理检索室,检索室是我们关注的焦点。当确定了检索方法后,这时检索员会把小阍提出的请求和检索的方法做上记录(电脑检索目录),并存放在检索室的柜架上.检索员柜架为按一定的方式来放,尽量让刚枪索的或者频繁检索的请求和方法放在最外面,便于以后当检索室满了后不容易被检索员作为候选T出去。这时检索员告诉A售宽员,说你还是在电脑里用检索目录搜索快,这时R售货员会把书名,检索的方法的地址等记下来作为小丽这次请求的会话信息。然后A停货员开始执行,并记录执行的状态信息,比方取到第几本书(这就是运行时的CURSOR信息到这个会话。执行完后,A售货员把最新的本“CBO基础书绐小丽。这时小丽可以决定结束这次会话的所有请求,也可以不结束,而去处理别的事情.好,这是我们第1段故事,从这段故事里我们能跟ORAC1.E关联上哪些知识点呢?O我们前面提到的买某一本书“CBO基础"就是提交了个SQ1.语句检索员是CBOO电脑检索目录是索引O检索用存放检索方式信息按最近最多执行顺序排列,对应就是1.R1.A售货员效劳器进程小丽是用户进程检索室是1.IBR八RYCAeHE,是ShareC1.p。1.SiZe的一局部,一些语句解析信息小丽有没有权限买等的信息是语意分析时存放在ROWCACHE里小丽会话信息里有要买的书名(绑定信息),检索的方法的地址,检索到第几本书等信息。这是私有CURSOR,O检索室的搜索方法,书名等信息是1.IBRARYCACHE里的子cursor,就是共享cursor.我们用ORAe1.E的概念美联到图书馆,我们就可以接着第2、3段故事了解内存是如何运作的。第2段故事这时如果小王要买一本“经济学概论”,也需要最新上架的新书。如果小王被指派给新来的B售货员,那B售货员去找检索员杳找检索室里有没有该检索的方法。前面小丽使用过的检索方法正好可以被使用,即使她们买的书名不同,但是书名被绑定了,也就是小王要买一本“书",而没有用特定的书名提交给检索员。这就是绑定成一个通用的变量名.在ORAC1.E中是用一个变量代密。这样,检索员完全可以决定用小丽的检索方法给小王共享,因为他们的目的看上去完全样。(但是这时未必能真的用到小丽的方法,如可能搜索员发现小王的权限跟小丽不一样,书店连卖都不会卖给他)。这时如果可以用小丽的检索方法,B传货员为小王生成会话信息,记录书名“经济学概论”,检索方法的地址等.这里是UGA.然后一样开始执行,我们发现要找到最新的书,是需要基于时间,而时间字段没有索引,所以必须排序,这排序是私有的区域局部,属于PGA1局部属于UGAe我们把排序放到一个临时的房间,我们称排序库。比方排序需要100本书,如果排序的结果不需要反应,那么排序完就从排序库糅放了。但如果排序的结果要反应给用户,如想显示排在圾早出版的20本书是哪几本,则需要在排序库排完后需要保存到另个房间,我们称为保存排序库,来实现用户的FEraI。我们也可以在每完成20本排序后,先把排序库里这20本移到保存:排序库,反应这20本给小王看,反应完后从保存排序库去除。然后再从排序库选择卜20本书排序从排序库取出,存入挎序保存库,反应给小王查看排序结果,一直这样循环,直到最后排序完100本书,小王有看了这】00本书的顺序后,排序库和保存排序库数据都被去除。这个扑序阵就是SORTAREASIZE,它是国于PGA,而保存掉序区属于反应给用户会话的(小王),它就是SORTAREARETA1.Mn1.S1.ZE,届FUGA局部.这里我们发现B华货员还是去找了检索员。这个小王买书搜索的过程我们叫软解析,第3段故事再看下面的情况,如果在小阍买完''CBO基Sr后,到麦当劳吃完饭,想起来还要买最新上架的书“备份与恢史",而且也要买最新的.在专有模式下,会话没有结束,那A售货员一直要为小丽效劳。但这时会发生什么情况呢?.A售货员接到小丽第2次请求后,发现她要买最新上架的书”备份与恢复”,这时她脑子里想起来应该怎么去检索这本书了,因为她还尚存了前面为小丽怎么检索“CBO基础"的方法的记忆。所以不需要麻烦检索抗/,因为她脑子里还存有前一本书怎么检索的记忆,这个记忆就叫sessioncachecursor,.属于这个会话的记忆,如果你设置了sessioncachecursor,那么某个任务提交了3次以上就会把执行方案拦到UGA,而不光是指针。也就是某人买最新上架书如果执行过3次一上,那么A住货员会记住前面3次检索员是如何做的.第4次就不需要检索员告诉我/,我自己脑子里已经记得该怎么做了。这大大提高了检索速度,因为检索员很忙,你最好不要麻烦她。私有的对象不会冲突,共享的对象(象检索员)最容易并发冲突。那如果在共享管理模式卜更发杂点,小丽可能发现售货员帮另一个用户处理谙求,而C俗货员来帮她买最新上架的书“备份与恢夏",这时小丽可以告诉它原来这个检索是怎么做的,而不需要C售货员去找检索员的麻烦。不检杳检索员,直接使用会话私有CUR50R信息去执行,我们在ORAC1.E称为软软解析(SOftsoftparse)<,好,这些内容虽然超出f书本内容,如果对这个过程还是不能理解,通过后面的学习,会加深印象。那结合我们这3段故事,我们来看这几个主要的共享内存区域。SharedPoo1.Thesharedpoo1.isusedtostorethemostrecent1.yexecutedSQ1.statementsandthemostrecent1.yuseddatadefinitions.Itconsistsoftwokeyperformance-re1.atedmemorystructures:-1.ibrarycache-Datadictionarycache图例共享池是用来存放最近常使用的SQ1.语句的解析信息和最近常使用的对象定义。解析信息就是检索室里的检索方法,我们由IibraryCaChe来存放该用户请求的对象权限、表、索引、用户名等字典信息,并在语意分析阶段进行判断,这些信息是存放在datadictionarycache。整个共享池由Shared_PoO1.SiZe来规定大小,并可以动态修改。可以用a1.tersystemset命令来实现,在Iog可以实现动态管理.第章ORAC1.E体系结构(二)完

    注意事项

    本文(DBA-I 第一章 ORACLE体系结构(二).docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开