《DBA-I 第一章 ORACLE体系结构(二)3990.docx》由会员分享,可在线阅读,更多相关《DBA-I 第一章 ORACLE体系结构(二)3990.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ORACLE体系结构(二)我们前面学习了了ORACLLE如何实现现客户的请求求并连接到实实例。客户端请求通过过LISTEENER审核核,LISTTENER会会指示ORAACLE分配配一个服务器器进程,并在在客户端进程程和服务器进进程间建立了了连接会话。我们称专有连接接会话,ORRACLE实实例提供的是是专有服务。就是所谓的dedicate模式。默认情况下就是dedicate模式。ORACLE除除了提供专有有连接会话,还还提供了共享享连接会话,OORACLEE实例也提供供了共享服务务。我们接下下来学习ORRACLE提提供的共享式式服务器是怎怎么样实现的的,有什么优优势。共享服务器大家家可能是第一
2、一次接触,有有点不太好理理解,这个不不着急,现阶阶段只要初步步了解下可以以了。我举个个例子:你们谁安装的的的oraclle是在liinux环境境下的?你建立一个sqqlpluss会话,看看看是不是多出出一个oraacle的OOS进程oracle117787117600014:533pts/00000:00:000rlwraapsqlpllusfuturre/futtureffang我们看到,专有有模式下。新新建一个会话话,就多出了了一个进程。但是共享模式和和这个不一样样,你开很多多个会话在服服务器上表现现为1个进程程。就是1个进程多多个会话一起起用,就是共共享服务器的的特点。那我再问下大家家,
3、共享模式式下,新开一一个会话,进进程一定不会会增加吗?不一定的,有可可能还是会增增加。比如我们假设一一个共享服务务器管理100个会话,现现在已经有110个了,再再连一个就是是11个,哪哪么还是会增增加一个进程程的。共享服务器模式式的主要优势势就是节约内内存。好,有了上面的的经验,我们们来看看共享享模式的特点点。先看下书店的书书柜陈列图我们前面讲的都都是专有服务务模式的连接接。我们再来来看共享服务务器模式下,静静安图书分店店是如何服务务的。当小丽发出一个个请求,要批批发10000本中国机械械出版社20009年后出出版的经济类类书,并通过轮船船运到宁波自己的的公司,并按按日期进行排排序捆绑存放放存
4、入小丽公司的仓仓库。如果采用共享服服务模式,那那涉及下面几个动作:店里为小丽丽(用户进程程1)分配了了售货员小英(服务器进程程1)为她服服务小英帮小丽丽取了这10000本中国国机械出版社社2009年年后出版的经经济类书小英并按出出版日期排完完序,并进行行包装。并反反馈给小丽检检查是否按自自己规定的顺顺序包装。小英将包装装后的书放到司机小思(服务器进进程2)货车里,这样司机小思来服务小小丽,帮这批批货运道码头头。司机小思将将货开往码头头这时售货员员小英可以为为小勇(用户户进程2)去去卖书。也就是一个售货货员小英跟小小勇建立了会会话,并进行行服务。小英英可以服务多多个不同会话话的任务(一一、小丽批
5、发发经济类书。二二、小勇买书书),而不需需要小英一直直为小丽服务务,所以也不不需要等待小小丽在请小英英下一个动作作前无所事事事。这时小英英既知道小丽丽的情况,也也知道小勇的的情况。对应于ORACCLE就是一一个服务器进进程可以有多多个会话(SSESSIOON),多个个会话信息需需要让一个服服务器共享,所所以叫共享服服务器进程。司机小思帮帮忙把货搬到到船上,他的的任务结束,开开车回书店。船长小川(服服务器进程33)将货运到到宁波。司机小宁(服服务器进程44)将货运到到小丽宁波的的公司。小丽这次的批发发任务共有四四个人帮它完完成(为了简简化,这里省省略了ORAACLE调度度器参与的角角色),这些些
6、人都是受静静安书店的委托服服务于小丽。而每个服务器进进程都会在执执行完任务后后反馈给客户户会话信息上图对应于ORRACLE就就是一个会话话可以由多个个服务器进程程来完成。而在专有服务模模式下,那小小英要一直为为小丽服务,一一直到把货运运到小丽公司司为止,它们们建立的会话话就结束了,而且进程也随之消消亡。在这期期间小英要既既当营业员、司司机、船长,而而且这期间小小丽要有事情情要处理,比比如去银行转转帐,那么小小英只有等待待小丽回来才才能继续工作作,而不能去去服务其他顾顾客,这很显显然大量浪费费了小英的效效率。在ORACLEE模式下,专专有模式会话话进程和服务务器进程一一一对应,服务务器进程要服服
7、务到结束,最最后一起消亡亡。 而在共享享服务模式下下,那小英在在卖完书后,即即使小丽这个个时候去收银银台交费,小小英也不需要要等待她,马马上可以去处理新新的客户小勇勇,这样售货货员的效率就就提高了。即即使小丽又要要重新需要小小英处理问题题,如小丽拿拿了收银凭据据,小英就要停下下小勇的服务务,把小丽的的书给她,并并输入电脑,再再回头处理小勇勇的工作。在ORACLLE模式下,共共享模式,用用户进程不需需要服务器进进程处理的的的时候,服务务器进程可以以服务别的用户户进程,当原原来的用户进进程继续请求求这个服务器器进程时,可可以打断后一一个用户进程程,继续处理理前一个用户户进程的工作作。这里小丽再次找
8、找小英时,她们们已经彼此认识,已已经是朋友了了,不需要再再重新打交道道,重新建立立信任关系,节约了之间间沟通的成本本。那小英知道了小小丽的姓名,任务起始时间,结束时间,当前的状态,任务的目的等。也同样知道了小勇相应的信息。这些是会话信息,会话信息对于所有的进程可以共享的。开始备课上节课 我们开开始DBA-I的第一节节课给大家整体介绍绍了下Oraacle 服服务器的体系系结构及其主主要组件,我我们简单回顾顾下。第一个问题:OORACLEE SERVVER由什么么组成?ORACLLE服务由一一个实例和一一个数据库组组成。ORACLE SERVEER的概念是是,一个ORACLLE SERRVER就是
9、是一个DATTABASEE 库文件加加上一个INNSTANCCE,按我们图书书馆的例子就就是上海图书书馆的静安书书城店提供的的就是一个ORRACLE SERVEER。第二个问题:OORACLEE实例(INNSTANCCE)由什么么组成?主内存结构(SSGA)+后后台进程那RAC的概念念是什么?RRAC的概念念就是多个实实例关联一个个数据库。ORACLLE SERRVER = 1个DBB + 1个个INSTAANCEINSTAANCE = MEMOORY + PROCEESSRAC = N个ORRACLE SERVEER = 11个DB + N个INNSTANCCE第三个问题:分分别简述下SSG
10、A,PGGA,UGAA是什么?第四个问题:我我们知道ORRACLE的的物理结构指指的是OS里里直接能查看到的文件件。那ORAACLE DB有哪几几种物理文件件? Controol filles Data ffiles Redo llog fiiles第五个问题:简简单说下专有有服务器和共共享服务器的的区别?专有服务器一个个服务器进程程专门服务一一个用户进程程,即使用户进进程空闲,服服务器进程还还是继续等待待随时为该会会话服务,不不能去干其他他事情。专有模式会话进进程和服务器器进程一一对对应,服务器器进程要服务务到结束,最最后一起消亡亡。共享服务器一个个服务器进程程可以服务多多个用户进程程,一个
11、用户进进程也可以被被多个服务器器进程服务。共享模式,用户户进程不需要要服务器进程程处理的的时时候,服务器器进程可以服服务别的用户户进程,当原原来的用户进进程继续请求求这个服务器器进程时,可可以打断后一一个用户进程程,继续处理理前一个用户户进程的工作作。大家结合我们图图书馆 小丽丽买书,售货货员小丽,司司机小思,船船长小川,司司机小宁为小小丽服务的例例子 再理解解下。我们上节课讲到到,在共享服务模式式下,那小英英在卖完书后后,即使小丽丽这个时候去去收银台交费费,小英也不不需要等待她她,马上可以去处理新新的客户小勇勇,这样售货货员的效率就就提高了。即使小丽又要重重新需要小英英处理问题,如小丽拿了收
12、银凭据,小英就要停下小勇的服务,把小丽的书给她,并输入电脑,再回头处理小勇的工作。这是小丽再次找找小英时,她们们已经彼此认识,已已经是朋友了了,不需要再再重新打交道道,重新建立立信任关系,节约了之间间沟通的成本本。那小英知道了小小丽的姓名,任务起始时间,结束时间,当前的状态,任务的目的等。也同样知道了小勇相应的信息。这些是会话信息息,会话信息息对于所有的进进程可以共享享的。所以这里涉及进进程中共享的的信息如下:会话信息:这次任务起起始时间,结结束时间,当当前的状态,排排序的反馈信信息、任务的的目的等。CURSOOR信息: CURRSOR是什什么?还有如小丽批发发这10000本书的方法法等在也是
13、可以让让另一个售货货员共享的,什么意思呢?就就有点类似 管理中的专专人负责的特特点,你只负负责某一件事事情,整体类类似于流水线线的概念。这在ORACLLE中通过SSQL语句实实现,并将执执行计划记录录下来,我们们称共享SQL 区,放在共共享池中。但是对于每发送送一个语句,在专有模式,相对于服务器进程是私有的,所以我们称私有SQL区,输入进程内存。但是对于共享服服务模式,一一个会话的信信息可以让所所有的进程共共享,那么属属于会话生命命周期里,这这个私有SQQL区可以是是共享的,也也可以是执行行完后隐式关关闭。我们后后面会学到SSESSIOON CACCHE CUURSOR。私有SQL区或或者称C
14、URRSOR,一一个SQL就就会对应一个个CURSOOR,在CUURSOR关关闭时释放。CURSOR(私私有SQL 区)这里有有两个部分搜索10000本书方法法(执行计划划)有些称为为固定部分,如如小丽的姓名名(绑定变量量),这些信信息在整个会会话中可以不马上释放你既可以指指定我不想要要这些信息(一一些程序的显显式关闭游标标),如procduure 中cclose cursoor也可以让它它自动去除这这些信息(默默认的SQLL语句执行完完就关闭游标标),如selectt * frrom taab;当前取书已已经到第9999本了。这这些是运行时时状态的信息息,等SQLL语句执行完完就释放掉了了。
15、注意,每个会话话会限制CUURSOR数数(任务数),如小丽刚才的会话总共有四个服务器进程服务的四个任务。如果每次执行完一个CURSOR(任务)后不马上释放这些CUROSR(任务)信息,那么超过open_cursors数后会抛出open cursor数超出错误,否则会占过多的资源。比如静安店最多多服务一个客户的子任务务(CURSSOR)数是是3,比如卖书、司司机运货到码码头、书通过过船运到宁波波,而且每个个任务做完后后登记的信息息没有清除,那么小宁要完成第四次子任务时候就不允许。这是因为怕一个大任务中小任务的信息太多造成大量内存使用。(特别是程序的循环操作,循环open cursor一个SQL一
16、千次,不执行close就会发生上述问题)所以对于应用程程序代码,要要仔细考虑CCURSORR的释放机制制。而上面的的这些CURRSOR信息息在共享服务务模式是共享享的,属于 UGA,并并存放在SGGA中,在有大池池的情况下存存放在大池。还有一部分内存存是完全私有有的,比如有些局部部变量作为程程序的栈空间间,还有些私有有工作空间,如如排序区,HHASH JJOIN区,位位图合并区等等,它们是在在执行的时候候调用全局区区的,我们称称为CGA(CCall GGloball Areaa) 调用全全局区,执行行完就释放。为为了减少资源源使用,CGA执行完完就释放,是是运行时状态态,别的进程程是无法看到到
17、的,还有象象栈空间调用完完就释放的都都是私有信息息。但是执行结束后后如果需要反反馈给用户会会话的数据,如如SELECCT的FETTCH,则需需要保留区的的数据提供用用户反馈信息息,这些信息保存在在哪里? 是不是CGGA?注意CCGA属于PPGA。如我们排序区可可以设置保留留空间,这样样这些SQLL执行完排序序完后,不马马上释放给操操作系统,而而是释放给UUGA,最后后FETCHH反馈给SEELECT的的用户。CGA属于PGGA与其他的全局区区不同,CGGA(CalllGlobaalArea调用全局区区)的存在是是瞬间的。它它只存在于一一个调用过程程中。 而UGAA可能属于PPGA或者SSGAP
18、GA是一段包包含一个Orracle服服务或后台进进程的数据和和控制信息的的内存。PGA的大小依依赖与系统的的配置。在专专用服务(DDedicaatedServeer)模式下下,一个服务务进程与一个个用户进程相相关,PGAA就包括了堆堆空间和UGGA。而UGA(UsserGlobaalArea用户全局区区)由用户会会话数据、游游标状态和索索引区组成。在共享服务(MMTS)模式式下,一个共共享服务进程程被多个用户户进程共享,此此时UGA是是ShareedPool或或LargeePool的的一部分(依依赖与配置)。此时UGA属于于SGAUGA根据连接接模式的区别别而有所区别别大家设想一下,一一个CG
19、A的的返回要怎么么返回给用户户?放在UGA里。我们排序区可以以设置保留空空间,这样这这些SQL执执行完排序完完后,不马上上释放给操作作系统,而是是释放给UGGA,最后FFETCH反反馈给SELLECT的用用户。而共享服务模式式UGA是共共享内存,所所以保留区排序在没有FFETCH前前可以使用,但但是FETCCH后仍然不不会保留这段段内存,它还还是会被释放放的。我们将在第第1章的后面面几节详细讲讲。这些私有部分,就象售货员的的私密信息,都会涉涉及到实际的的数据,如HASHH 表,所以以其它售货员员永远不会知知道。否则就象中介公司司的业务员互互相之间知道道了客户的详详细信息,还还可能存在互互相撬客
20、户的情况况。但是小丽的情况况,售货员小小英(服务器器进程1)和和司机小勇、小宁(服务器进程2,4)和船长小川(服务器进程3)都知道。所以小丽的信息是共享的,所以在共享服务模式,UGA是在SGA里。共享服务模式,也也就是进程与与会话之间是是n:m的关关系。在共享模式式下,一个进进程可以服务务多个会话,一一个会话可以以由多个进程程服务。好比比一辆的士可可以服务多个个人,而一个个人也可以坐坐多辆的士。在共享下ugaa不是pgaa的子堆,是是SGA的子子堆,但是ugaa不会并发,因为单个会会话不可能在在同时有多个活活动进程服务务它。uga始终属于于会话的,一一个会话永远远是顺序执行行的,所以不不会冲突
21、。所以虽然共共享但不会有有latchh的冲突。我们小丽的生命命周期是把这这货运到码头头,然后运到到宁波,这个个会话才结束束,而这期间间有售货员进进程,司机进进程和船长进进程可以为其它用户服务。关于共享服务模模式,我们会会在体系架构构(三)用的的士的例子来来详细举例,另外DBAA II的第第五章将介绍绍共享服务器器的配置。SGA的构成我们已经了解了了什么是SGGA,什么是是PGA,那我们分别别来详细展开这两大组件,来了解这些些组件各自的的作用,和它它的构成。首先我们来学习习SGA,一个实例只只有一个SGGA。我们看到,SGGA是由多个个功能不同的的共享内存组组件构成。前面四个子组组件是SGA必备
22、备组件,在10G,11G会多出出流池等。我们这里只说个个SGA大概的的组成,每个个小的组件在在之后会详细分析。第一个组件件:共享池,用用来存放SQQL解析树和和字典对象定定义的共享区区域。第二个组件件,数据库高高速缓存区,用来存放放业务数据的的共享内存区区域。第三个组件件,REDOO日志缓存区区,用来记录录数据库的每每个改动向量量,其中包括括系统的改动动和UNDOO的改动(UUNDO其实实也是一次RREDO)。第四个组件件,其它共享享资源,如LLOCK,EENQUEUUE,LATTCH,统计计数据。除了前3个组件件是资源外,锁也是资源源前3个组件的共共享资源并发发冲突可以用用LATCHH来管理
23、,那那LATCHH本身也是种种资源,还需需要专门管理理LATCHH的LATCCH来管理。另外,在9I还还有其它2组组可选的组件件,分别是大池池和JAVAA池,他们都都跟共享池的的功能类似,是它的替代代品,用来实现某些些特殊的请求求。比如大池是用于于存放对那些些复杂的程序序包分析、RMAN、UGA、异步IO等等相关的数据据,而JAVVA池是用来存放JJAVA存储储过程的分析析信息。那我们要搭建一一个实例该如如何规划这个个实例的内存存呢?就象我们要要开一家静安书店,我们需要指指定一个开业业筹备的方案案,设置好各各职能部门及及所需要的门门面。这个筹备方方案就是我们们以后讲到的的初始化参数数。实例启动
24、必须先先划分内存,店要开业就就必须要买下下门面,那我我们数据库该该如何设置内内存大小呢?特别是SGGA。SGA的设置在9I,OORACLEE需要你先划划分一个SGGA的最大大大小限额SGGA_MAXX_SIZEE,用于划出出最大多少的的内存给ORRACLE共共享内存使用用。该参数只能通过过文本参数修修改或SPFFILE的设设置,并在重重起后生效。10g实现SGGA的自动管管理,并设置置了sga_targeet。我们称自动动内存管理为为ASMM,在11G,可以以把PGA和和SGA作为为一个整体进进行自动管理理。SGA也会会使用到虚拟拟内存,在有有些平台甚至至可以固定在物理内内存内。我们知道一一个
25、进程使用用的物理内存存,会需要相相应大小的虚虚拟内存,所所以要设置合合理的虚拟内内存大小,以以支持系统正正常运转。通常情况:如果果4G的物理内存,配置4G或者8G虚拟内存存就可以。内存分配需需要按照颗粒粒大小来分配配。比如颗粒是166M,原来总内存存是32M,你把把32M改为40M,那实实际上会变成成32M+16M=48M。所以必须按按照步长进行行分配内存。如果SGA小于于128M,那那么步长是44M,否则是是16M我们可以用下面面的字典来查查当前系统的的步长V$SGA_DDYNAMIIC_COMMPONENNTS我们了解了SGGA的分配和和SGA主要要的几大组件件,我们就需需要深入了解解几大
26、组件的的作用及它们间是如何配合的的。先看看SGA的的几大组件共享池数据缓冲区PGA&UGAA处理内存的机制制我们还是用前面面图书馆的例例子来全面了了解ORACCLE处理这这些内存的机机制。我们来举个例子子,静安书店刚开业,小小丽要买某一一本书“CBO基础础”,而且必须须是最新上架架的书。因为为小丽希望买买到的是最新新的“CBO基础础”,否则估计计已经被很多多人翻旧了。有一个刚进静安安书店的A售货员接接到了小丽的的服务,她们们建立了买卖卖的会话关系系。而且由于书店店刚开业,AA售货员第一一次上班,从从来不知道该该如何去找这这本书,A售货员脑子里里不记得该如如何去找这个个书,那A售货员员只能通过有
27、有限的知识去去获取最快的的方法找到这这本书。她可以有几几种选择:从书架的第第1本书开始始,按书架的编编号顺序找,直直到找到第11本“CBO基础础”,然后再继继续找第2本“CBO基础础”,然后按时时间排序,直直找到书架最最后一本书。从店里的前前台电脑里有有一本书的检检索目录,是是按书名拼音音排序的,用用它来快速定位这本本书,由于检索目录录是按书名排排序的,选取取出来的书还还要按日期排排序,然后选选出最新的一一本“CBO基础础”。但是决定哪种选选择来获取“CBO基础础”,这个工作不不是由A售货货员来做,A售货员首首先会把这个个请求交给店店里的一个检检索员,让他决定这本书小丽丽有没有权限限买让检索员
28、评评估哪种方法法能更快的拿拿到“CBO基础础”这就类似于SQQL的语意分分析、语法分分析、CBOO分析。检索索员负责管理理检索室,检索室是我我们关注的焦焦点。当确定定了检索方法法后,这时检检索员会把小小丽提出的请请求和检索的的方法做上记记录(电脑检检索目录),并并存放在检索索室的柜架上上。检索员柜架为按按一定的方式式来放,尽量量让刚检索的的或者频繁检检索的请求和和方法放在最最外面,便于于以后当检索室满了后后不容易被检检索员作为侯侯选T出去。这时检索员告诉诉A售货员,说说你还是在电电脑里用检索索目录搜索快快,这时A售货货员会把书名名,检索的方方法的地址等等记下来作为为小丽这次请请求的会话信信息。
29、然后A售货员开开始执行,并并记录执行的的状态信息,比比如取到第几几本书了,这这就是运行时时的CURSSOR信息到到这个会话。执行完后,A售售货员把最新的一本本“CBO基础础”书给小丽。这这时小丽可以以决定结束这这次会话的所所有请求,也也可以不结束束,而去处理理别的事情。好,这是我们第第1段故事,从这段故事事里我们能跟跟ORACLLE关联上哪哪些知识点呢呢? 我们前面提提到的买某一一本书“CBO基础础”就是提交了了一个SQLL语句 检索员是CCBO 电脑检索目目录是索引 检索员存放放检索方式信信息按最近最最多执行顺序序排列,对应应就是LRUU A售货员服服务器进程 小丽是用户户进程 检索室是LL
30、IBRARRY CACCHE,是ssharedd_pooll_sizee的一部分,一些语句解解析信息 小丽有没有有权限买等的的信息是语意意分析时存放放在ROW CACHEE里 小丽会话信信息里有要买买的书名(绑绑定信息),检检索的方法的的地址,检索索到第几本书书等信息。这这是私有CUURSOR。 检索室的搜搜索方法,书书名等信息是是LIBRAARY CAACHE里的的子curssor,就是是共享currsor。我们用ORACCLE的概念念关联到图书书馆,我们就就可以接着第第2、3段故事事了解内存是是如何运作的。第2段故事这时如果小王要要买一本“经济学概论论”,也需要最最新上架的新新书。如果小王
31、被被指派给新来来的B售货员员,那B售货员员去找检索员员查找检索室室里有没有该该检索的方法法。前面小丽使用过过的检索方法正好好可以被使用用,即使她们们买的书名不不同,但是书书名被绑定了了,也就是小小王要买一本本“书”,而没有用特特定的书名提提交给检索员员。这就是绑绑定成一个通通用的变量名名,在ORAACLE中是是用一个变量量代替。这样样,检索员完完全可以决定定用小丽的检检索方法给小小王共享,因因为他们的目目的看上去完完全一样。(但但是这时未必必能真的用到到小丽的方法法,如可能搜索员员发现小王的权限跟跟小丽不一样样,书店连卖卖都不会卖给给他)。这时如果可以用用小丽的检索索方法,B售售货员为小王王生
32、成会话信信息,记录书书名“经济学概论论”,检索方法法的地址等。这这里是UGAA。然后一样开始执执行,我们发发现要找到最最新的书,是是需要基于时间间,而时间字段没没有索引,所所以必须排序序,这排序是是私有的区域域部分,属于于PGA,部部分属于UGGA。我们把排序放到到一个临时的的房间,我们们称排序库。比如排序需要100本书,如果排序的结果不需要反馈,那么排序完就从排序库释放了。但如果排序的结果要反馈给用户,如想显示排在最早出版的20本书是哪几本,则需要在排序库排完后需要保留到另一个房间,我们称为保留排序库,来实现用户的FETCH。我们也可以在每完成20本排序后,先把排序库里这20本移到保留排序库
33、,反馈这20本给小王看,反馈完后从保留排序库清除。然后再从排序库选择下20本书排序从排序库取出,存入排序保留库,反馈给小王查看排序结果,一直这样循环,直到最后排序完100本书,小王有看了这100本书的顺序后,排序库和保留排序库数据都被清除。这个排序库就是SORT_AREA _SIZE,它是属于PGA,而保留排序区属于反馈给用户会话的(小王),它就是SORT_AREA_RETAINED_SIZE,属于UGA部分。这里我们发现BB售货员还是是去找了检索索员。这个小小王买书搜索索的过程我们们叫软解析。第3段故事再看下面的情况况,如果在小小丽买完“CBO基础础”后,到麦当当劳吃完饭,想想起来还要买买最
34、新上架的的书“备份与恢复复”,而且也要买买最新的。在专有模式式下,会话没没有结束,那那A售货员一一直要为小丽丽服务。但这时会发生什什么情况呢?A售货员接到小小丽第2次请请求后,发现现她要买最新新上架的书“备份与恢复复”,这时她脑脑子里想起来来应该怎么去去检索这本书书了,因为她她还尚存了前前面为小丽怎怎么检索“CBO基础础”的方法的记记忆。所以不不需要麻烦检检索员了,因因为她脑子里里还存有前一本书书怎么检索的的记忆,这个个记忆就叫ssessioon_cacche_cuursor。属属于这个会话话的记忆,如如果你设置了了sessiion_caache_ccursorr,那么某个个任务提交了了3次以
35、上就就会把执行计计划拷到UGGA,而不光光是指针。也就是某人人买最新上架架书如果执行行过次一上上,那么A售售货员会记住住前面3次检检索员是如何何做的。第44次就不需要要检索员告诉诉我了,我自自己脑子里已已经记得该怎怎么做了。这大大提高了检检索速度,因因为检索员很很忙,你最好好不要麻烦她她。私有的对对象不会冲突突,共享的对对象(象检索索员)最容易易并发冲突。那如果在共享管管理模式下更更复杂点,小丽可能发发现A售货员员帮另一个用用户处理请求求,而C售货货员来帮她买买最新上架的的书“备份与恢复复”,这时小丽丽可以告诉它它原来这个检检索是怎么做做的,而不需需要C售货员员去找检索员员的麻烦。不检查检索索
36、员,直接使使用会话私有有CURSOOR信息去执执行,我们在在ORACLLE称为软软软解析(sooft sooft parsse)。好,这些内容虽虽然超出了书书本内容,如如果对这个过过程还是不能能理解,通过过后面的学习习,会加深印印象。那结合我们这33段故事,我我们来看这几几个主要的共共享内存区域域。共享池图例 1共享池是用来存存放最近常使使用的SQLL语句的解析析信息和最近近常使用的对对象定义。解析信息就就是检索室里里的检索方法法,我们由llibrarry cacche来存放放该用户请求求的对象权限限、表、索引、用户名等字字典信息,并并在语意分析阶段进行行判断,这些些信息是存放放在dataa dicttionarry cacche。整个共享池池由sharred_poool_siize来规定定大小,并可以动态态修改。可以用allter ssystemm set命命令来实现,在在10g可以实实现动态管理理。第一章ORAACLE体系系结构(二)完