零全零美(www.zzgwt.com)
生活中的很多事情,并不像If...Else那么简单!
posts - 96,comments - 52,trackbacks - 0
   上图为Oracle的体系结构概貌,以图所示:从大的方面来讲Oracle由用户进程、服务器端进程、实例以及数据等几个部分组成。下面是各个部分的详细说明:
    (1)用户进程(User Process)与服务器端进程(Server process) 用户进程是用户用来与Oracle服务器交互的,其运行于客户端,当用户运行某个工具(如SQL*Plus)时创建,当用户退出上述工具时结束,由上图可以看出用户进程并不是直接与Oracle实例或者是数据库交互而是通过Oracle server process进行的。Oracle服务器端进程是用户进程与Oracle核心的桥梁,用户进程通过服务器端进程操作实例(instance)最终影响数据库,如用户发出一条SQL语句,会首先交由服务器端进程然后才会传至实例。
    (2)实例(Instance) 实例由两部分组成:一组Oracle进程和SGA。SGA全称为System Global Area是一块巨大的共享内存区域,他被看作是Oracle数据库的一个大缓冲池,这里的数据可以被Oracle的各个进程共用。SGA本身又由其他的模块组成,
         1:共享池(Shared Pool) 共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的 CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:
           <1>SQL语句缓冲(Library Cache): 当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在 Shared pool的Library Cache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL比第二次运行的SQL要慢一点的原因。
           <2>数据字典缓冲区(Data Dictionary Cache):ORACLE特地为数据字典准备的一块缓冲池,供ORACLE内部使用.
        2:块缓冲区高速缓存(Database Buffer Cache):这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。在这个级别里没有系统文件,用户数据文件,临时数据文件,回滚段文件之分。也就是任何文件的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成,并由DBWR进程将修改后的数据写入磁盘。
posted on 2008-08-18 10:38 零全零美 阅读(198) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: