Oracle 体系结构 的理解

Oracle 体系结构 的理解

ID:44715240

大小:34.93 KB

页数:11页

时间:2019-10-25

Oracle 体系结构 的理解_第1页
Oracle 体系结构 的理解_第2页
Oracle 体系结构 的理解_第3页
Oracle 体系结构 的理解_第4页
Oracle 体系结构 的理解_第5页
资源描述:

《Oracle 体系结构 的理解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Oracle体系结构1、ORACLE实例――包括内存结构与后台进程2、ORACLE数据库――物理操作系统文件的集合3、了解内存结构的组成4、了解后台进程的作用1、Oracle实例――包括内存结构与后台进程2、Oracle数据库――物理操作系统文件的集合3、了解内存结构的组成4、了解后台进程的作用5、了解数据库的物理文件6、解释各种逻辑结构一、Oracle实例1、Oracle实例SystemGlobalArea(SGA)和BackgroundProcess称为数据库的实例。2、Oracle数据库一系列物理

2、文件的集合(数据文件,控制文件,联机日志,参数文件等)3、系统全局共享区SystemGlobalArea(SGA)SystemGlobalArea是一块巨大的共享内存区域,他被看做是Oracle数据库的一个大缓冲池,这里的数据可以被Oracle的各个进程共用。其大小可以通过如下语句查看:SQL>select*fromv$sga;NAMEVALUE-----------------------------FixedSize39816VariableSize259812784DatabaseBuffers1

3、.049E+09RedoBuffers327680更详细的信息可以参考V$sgastat、V$buffer_pool主要包括以下几个部分:a、共享池(Sharedpool)共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:SQL语句缓冲(LibraryCache)当一个用户提交一个SQL语句,Oracle会将这句SQL进行

4、分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Sharedpool的LibraryCache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL比第二次运行的SQL要慢一点的原因。下面举例说明parse的时间SQL>selectcount(*)fromscpass;COUNT(*)----------243Elapsed:00:00:00.08这是在Share_

5、pool和Databuffer都没有数据缓冲区的情况下所用的时间SQL>altersystemflushSHARED_POOL;Systemaltered.清空Share_pool,保留DatabufferSQL>selectcount(*)fromscpass;COUNT(*)----------243Elapsed:00:00:00.02SQL>selectcount(*)fromscpass;COUNT(*)----------243Elapsed:00:00:00.00从两句SQL的时间差上可以

6、看出该SQL的Parse时间约为00:00:00.02对于保存在共享池中的SQL语句,可以从V$Sqltext、v$Sqlarea中查询到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的Sharepool,提高SQL语句的重用率必须先养成良好的变成习惯,尽量使用Bind变量。数据字典缓冲区(DataDictionaryCache)显而易见,数据字典缓冲区是Oracle特地为数据字典准备的一块缓冲池,供Oracle内部使用,没有什么可以说的。b、块缓

7、冲区高速缓存(DatabaseBufferCache)这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。在这个级别里没有系统文件,,户数据文件,临时数据文件,回滚段文件之分。也就是任何文件的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成,并由DBWR进程将修改后的数据写入磁盘。这个缓冲区的块基本上在两个不同的列表中管理。一个是块的“脏”表(DirtyList),需要用数据库块的书写器(DBWR)来写入,另外一个是不脏的块的列表(FreeList),一般的情况下,是使

8、用最近最少使用(LeastRecentlyUsed,LRU)算法来管理。块缓冲区高速缓存又可以细分为以下三个部分(Defaultpool,Keeppool,Recyclepool)。如果不是人为设置初始化参数(Init.ora),Oracle将默认为Defaultpool。由于操作系统寻址能力的限制,不通过特殊设置,在32位的系统上,块缓冲区高速缓存最大可以达到1.7G,在64位系统上,块缓冲区高速缓存最大可以达到10G。c、重做日志缓冲区

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。