易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle 体系结构 ORA

Linux/Unix上,Oracle是多个进程实现的,每一个主要函数都是一个进程;在Windows上,则是一个单一进程,进程中包含多个线程。
Oracle把一系列物理文件,如数据文件(Data file)、控制文件(Control file)、联机日志(Redo log file)、参数文件(spfile or pfile)等物理结构及与之对应的逻辑结构,如表空间(Tablespace)、段(Segment)、块(Block)等组成的集合,称为数据库(Database)。 
Oracle内存结构和后台进程被做成数据库的实例(Instance),一个实例最多只能安装(Mount)或打开(Open)在一个数据库上,负责数据库的相应操作并与用户交互。一般情况下,一个数据库对应一个实例,但是在特点的情况下,如OPS/RAC的情况下,一个数据库可以对应到多个实例。
Oracle实例(Instance)
Oracle内存结构
Oracle内存结构主要可以分共享内存区与非共享内存区,共享内存区主要由SGA(System global area)组成,非共享内存区主要由PGA(Program global area)组成
SGA
这里的数据可以被Oracle的各个进程共用,如果有互斥的操作,如锁定一个内存对象,则需要通过Latch与Enqueue来控制。
每个Oracle实例(Instance)只能启动一个SGA,除非通过RAC等一些特殊的全局管理方式,否则不同的实例只能访问自己的SGA区域。
SQL> show sga;
Total System Global Area 2058981376 bytes
Fixed Size 1300968 bytes
Variable Size 822085144 bytes
Database Buffers 1224736768 bytes
Redo Buffers 10858496 bytes
以上是典型的OLTP(联机事务处理)环境中的SGA的分配情况。
Fixed Size
包括了一些数据库与实例的控制信息、状态信息、字典信息等,启动的时候就固定在SGA中,而且不会改变。
Variable Size
包含了shared pool、large pool、java pool、streams pool、游标区和其它结构等。
Database buffers(Data buffer)
它是数据库中数据块缓冲的地方,数据块在内存中就缓存在这里。所以,在OLTP环境中,Data buffer是SGA中最大的缓冲区,是数据库性能高低的关键所在。
Redo buffers
它是为了加快日志写进程的速度而设立的缓冲区,在一般OLTP环境中,因为提交很频繁,所以一般不会很大。
SGA的大小信息也可以从v$sga中获得,与show sga的结果一样。v$sgastat记录了SGA的一些统计信息,v$sga_dynamic_components则保存了SGA中可以动态调整的区域的一些动态或者手工调整记录。
共享池(Shared pool)
共享池


相关文档:

oracle 相關的sql語句

数据字典dict总是属于Oracle用户sys的。
  1、用户:
   select username from dba_users;
  改口令
   alter user spgroup identified by spgtest;
  2、表空间:
   select * from dba_data_files;
   select * from dba_tablespaces;//表空间
   select tablespace_name,sum(bytes), sum(b ......

优化数据库大幅度提高Oracle的性能

几个简单的步骤大幅提高Oracle性能--我优化数据库的三板斧。
数据库优化的讨论可以说是一个永恒的主题。资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等。还有的人认为要抓出执行最慢的语句来进行优化。但实际情况是,提出疑问的人很可能根本不懂执行计划,更不要说statspac ......

Oracle的优化器有两种优化方式(一)

Oracle的优化器有两种优化方式(整理), 2010-04-13
RBO方式:基于规则的优化方式(Rule-Based Optimization,简称为RBO)
  优化器在分析SQL语句时,所遵循的是Oracle内部预定的一些规则。比如我们常见的,当一个where子句中的一列有索引时去走索引。
CBO方式:基于代价的优化方式(Cost-Based Optimization,简称为CBO ......

Oracle ROLLUP和CUBE 用法

在做项目经常遇到分科室、人员进行汇总的问题,在ORACLE中对此类问题的处理相当方便!下面以项目中遇到的实例进行说明:
查询语句如下:
select f_sys_getsectnamebysectid(a.sectionid) as sectname,
        --a.sectionid,
       f_sys_employin ......

(Oracle)rownum用法详解

(Oracle)rownum用法详解
2008-08-06 15:41
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀。
(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号