您的位置:首页 >> 数据库 >> Oracle >> 体系架构 >> 正文
体系架构 RSS
 

Oracle传统基本体系结构初步介绍

http://www.rdxx.com 06年05月04日 12:29 网络 我要投稿

关键词: 体系结构 , 基本 , Oracle , 结构 , 体系
在本章里你可以了解以下内容

  1、 Oracle 实例——包括内存结构与后台进程

  2、 ORACLE 数据库——物理操作系统文件的集合

  3、 了解内存结构的组成

  4、 了解后台进程的作用

  5、 了解数据库的物理文件

  6、 解释各种逻辑结构

一、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

主要包括以下几个部分:

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变量。

9 7 3 1 2 3 4 5 6 7 8 4 8 :


 
 
标签: 体系结构 , 基本 , Oracle , 结构 , 体系 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站