Oracle体系架构(二) 系统全局共享区SGA

System Global Area 是一块巨大的共享内存区域,他被看做是Oracle 数据库的一个大缓冲池,这 里的数据可以被ORACLE的各个进程共用。其大小查看语句:

SQL> select * from v$sga;

V$sgastat、V$buffer_pool

主要包括以下几个部分:

1、共享池(Shared pool)

共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。太大太小都会扼杀性能,使系统 停止,将会消耗大量的CPU来管理这个共享池。

共享池可分为:Library Cache和Data Dictionaey Cache

(1)库高速缓冲区(Library Cache)

library cache最主要的功能就是存放用户提交的SQL语句及相关的解析树(解析树也就是对SQL语 句中所涉及的所有对象的展现)、执行计划、用户提交的PL/SQL程序块(包括匿名程序块、存储过程 、包、函数等)以及它们转换后能够被Oracle执行的代码等。此外,library cache中还存放了很多控 制结构(用于管理这些内存结构),包括lock、pin、dependency table等。

library cache也存放了很多的数据库对象的信息,包括表、索引等。有关这些数据库对象的信息 都是从dictionary cache中获得的。如果用户对library cache中的对象信息进行了修改,比如为表添 加了一个列等,则这些修改会返回到dictionary cache中。

在library cache中存放的所有信息单元都叫做对象(object),可分两类:一类叫存储对象,也 就是上面所说的数据库对象。它们是通过显式的SQL语句或PL/SQL程序创建出来的,如果要删除它们, 也必须通过显式的SQL命令进行删除。这类对象包括表、视图、索引、包、函数等;另一类叫做过渡对 象,也就是上面所说的用户提交的SQL语句或者提交的PL/SQL匿名程序块等。这些过渡对象是在执行 SQL语句或PL/SQL程序的过程中产生的,并缓存在内存里。如果实例关闭则删除,或者由于内存不足而 被交换出去,从而被删除。

当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗 费相对较多的时间,即硬解析。在分析完这个SQL,Oracle会把他的分析结果给保存在Shared pool的 Library Cache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运 行的时间,即软解析。这也是为什么第一次运行的SQL 比第二次运行的SQL要慢一点的原因。

下面举例说明parse的时间

SQL> select count(*) from scpass ;

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

时间: 2024-10-27 11:59:14

Oracle体系架构(二) 系统全局共享区SGA的相关文章

Oracle体系架构(一) 概述

Oracle Server由实例和数据库组成. 1.ORACLE 实例 System Global Area(SGA) 和 Background Process 称为数据库的实例.我们用实例来访问数据库 ,一个数据库一次只能打开一个实例 2.ORACLE 数据库 即一系列物理文件的集合: @数据文件:存储数据,以.dbf做后缀.一句话:一个表空间对多个数据文件,一个数据文件只对 一个表空间.dba_data_files/v$datafile. @控制文件:存储实例.数据文件及日志文件等信息的二进

Oracle体系架构(三) PGA,UGA,CGA

1.概念 PGA: 程序全局区,服务器进程使用的内存区域,包括特定服务器进程的数据和控制信息,例如私 有信息和使用的操作系统资源等. UGA: 用户全局区,特定Session使用的内存区域,例如Session的SQL工作区.登陆认证信息等. Session的SQL工作区大小对查询性能的影响比较关键,shared server模式时UGA从SGA的large pool( 如果有设置)或者shared pool(没有设置large pool)中分配,dedicated server模式时UGA从PG

服务器无法通过系统非页面共享区来进行分配

服务器开始阶段性的出现死机状态了.隔一段时间就无法连接了.重启后正常,过一段时间又是同样的问题. 事件查看器中有大量的同样报错: 事件ID:2020 描述:服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的. 事件ID:333 描述:由注册表引起的 I/O 操作发生了不可恢复的错误. 注册表将不能读取.写出或刷新包含注册表系统图像的其中一个文件. 尝试用以下方法解决这个问题,效果还有待观察: 1.启动注册表编辑器(开始->运行->Regedt32.exe). 2.在注册表中找到并单击

Oracle数据库体系架构概要

Oracle数据库系统是一个复杂的软件系统.所谓Oracle的体系架构,是指Oracle数据库管理系统的的组成部分和这些组成部分之间的相互关系,包括内存结构.后台进程.物理与逻辑结构等.     下图为Oracle数据库体系总体图:     Oracle数据库的体系很复杂,复杂的原因在于它最大限度的节约内存,从上图可以看出,它在整体上分实例和数据库文件两部分.     一.实例(Instance):指数据库服务器的内存及相关处理程序,它是Oracle的心脏.与Oracle性能关系最大的是SGA(

云计算数据中心安全体系架构浅析

建立数据中心的目的是为了更好地利用数据.挖掘数据,向数据要效益.在数据中心中应用云计算技术则是一个必然的趋势.而从数据中心获得效益就必须有一个相对安全稳定的环境作为支撑,因此研究云计算数据中心的信息安全体系架构具有重要意义. 一.云计算综述 (一)云计算简介 在世界著名市场研究咨询机构Gartner评选的对多数组织最具战略意义的十大技术和趋势中,云计算技术位列第一. 云计算指IT基础设施的交付和使用模式,指通过网络以按需.易扩展的方式获得所需资源.从更深层次的角度来看,也可以不局限于IT基础设施

超级PK:Sybase与Oracle的十二场性能比拼

Sybase公司成立于1986年,立足于在开放系统平台上研制具有Client/Server体系结构的数据库系统软件产品.当时的Sybase公司由于有效地汲取了其它RDBMS设计过程中的先进技术和概念,以满足联机事务处理(OLTP)应用的高性能要求为目标,同时加强联网对异构数据源的开放互联,使Sybase取得了很大成功,特别是Sybase有效的拓展市场行动,使Sybase曾一度成为世界数据库市场增长最快的产品.然而,由于产品本身的技术问题,不能提供对大型多处理器系统的支持,使得Sybase的市场份

BI的体系架构及相关技术

一个BI系统为了满足企业管理者的要求,从浩如烟海的资料中找出其关心的数据,必须要做到以下几步: 1)为了整合各种格式的数据,清除原有数据中的错误记录--数据预处理的要求. 2)对预处理过数据,应该统一集中起来--元数据(Meta Data).数据仓库(Data Warehouse)的要求: 3)最后,对于集中起来的庞大的数据集,还应进行相应的专业统计,从中发掘出对企业决策有价值的新的机会--OLAP(联机事务分析)和数据挖掘(Data Mining)的要求. 所以,一个典型的BI体系架构应该包含

IBM内容管理方案 让不同系统内容共享

IBM内容管理第8版(CM V8)提供了一套可靠的.易升级的.强劲的企业内容管理体系架构,它也同时提供了强劲的.安全的和高扩展能力的服务,使得企业用户能非常容易地访问电子商务的内容.这种体系架构能够通过具有强劲.灵活的数据模型的单一存储库来支持不同的.异构的内容管理技术,包括文档管理.数字媒体资产管理.网站内容管理等,这种数据模型使得我们能非常容易地在不同系统之间实现内容共享,从而提高了业务处理流程效率. IBM CM V8也提供了各种特性来满足对内容整个生命周期的管理,包括捕获.存储.组织.流

MySQL全局共享内存介绍_Mysql

前言 全局共享内存则主要是 MySQL Instance(mysqld进程)以及底层存储引擎用来暂存各种全局运算及可共享的暂存信息,如存储查询缓存的 Query Cache,缓存连接线程的 Thread Cache,缓存表文件句柄信息的 Table Cache,缓存二进制日志的 BinLog Buffer, 缓存 MyISAM 存储引擎索引键的 Key Buffer以及存储 InnoDB 数据和索引的 InnoDB Buffer Pool 等等.下面针对 MySQL 主要的共享内存进行一个简单的