- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle抱团学习——体系架构学习
--miumiu
.oracle物理层的体系架构
.oracle物理层各部件的作用
.oracle逻辑层的体系架构
开通电脑——(内存+cpu+硬盘)
连通数据库(PGA)(相当于电脑设置的用户名和密码,这些信息由PGA携带)
Oracle的内存SGA
Oracle的CPU(后台进程)
Oracle的硬盘(数据文件)
监听器
连通上了数据库,就开始了一个实例。。。
SGA结构:
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) ? ? 这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。在这个级别里没有系统文件,,户数据文件,临时数据文件,回滚段文件之分。也就是任何文件的数据块
文档评论(0)