oracle体结构整理.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle体结构整理

oracle体系结构整理 一、ORACLE例 1、ORACLE 实例 System Global Area(SGA) 和 Background Process 被成为数据库的实例。 2、ORACLE 数据库 一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等) 3、系统全局共享区System Global Area(SGA)?? System Global Area 是一块巨大的共享内存区域,他被看做是Oracle 数据库的一个大缓冲池,这里的数据可以被ORACLE的各个进程共用。其大小可以通过如下语句查看: SQL select * from v$sga; NAME VALUE -------------------- --------- Fixed Size 39816 Variable Size 259812784 Database Buffers 1.049E+09 Redo Buffers 327680 更详细的信息可以参考V$sgastat、V$buffer_pool 主要包括以下几个部分: a、 共享池(Shared pool) 共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分: ·SQL语句缓冲(Library Cache) 当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Shared pool的Library Cache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL 比第二次运行的SQL要慢一点的原因。 下面举例说明parse的时间 SQL select count(*) fromscpass ; COUNT(*) ---------- 243 Elapsed: 00:00:00.08 这是在Share_pool 和Data buffer 都没有数据缓 冲区的情况下所用的时间 SQL alter system flush SHARED_POOL; System altered. 清空Share_pool,保留Data buffer SQL select count(*) from scpass ; COUNT(*) ---------- 243 Elapsed: 00:00:00.02 SQL select count(*) from scpass ; COUNT(*) ---------- 243 Elapsed: 00:00:00.00 从两句SQL 的时间差上可以看出该SQL 的Parse 时间约为00:00:00.02 对于保存在共享池中的SQL语句,可以从V$Sqltext、v$Sqlarea中查询到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的Share pool,提高SQL语句的重用率必须先养成良好的变成习惯,尽量使用Bind变量。 ·数据字典缓冲区(Data Dictionary Cache) 显而易见,数据字典缓冲区是ORACLE特地为数据字典准备的一块缓冲池,供ORACLE内部使用,没有什么可以说的。 b、块缓冲区高速缓存(Database Buffer Cache) 这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行 *** 作。在这个级别里没有系统文件,,户数据文件,临时数据文件,回滚段文件之分。也就是任何文件的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成,并由DBWR进程将修改后的数据写入磁盘。 这个缓冲区的块基本上在两个不同的列表中管理。一个是块的“脏”表(Dirty List),需要用数据库块的书写器(DBWR)来写入,另外一个是不脏的块的列表(Free List),一般的情况下,是使用最近最少使用(Least Recently Used,LRU)算法来管理。 块缓冲区高速缓存又可以细分为以下三个部分(Default pool,Keep pool,Recycle pool)。如果不是人为设置初始化参数(Init.ora),ORACLE将默认为Default pool。 由于 *** 作系统寻址能力的限制,不通过特殊设置,在32位的系统上,块缓冲区高速缓存最大可以达到1.7G,在64位系统上,块缓冲区

文档评论(0)

nbc152 + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档