oracle sga用处是什么,sga由什么组成 您所在的位置:网站首页 sga主要有哪些部分 oracle sga用处是什么,sga由什么组成

oracle sga用处是什么,sga由什么组成

2024-04-13 04:30| 来源: 网络整理| 查看: 265

sga指的是“系统全局区”,是ORACLE为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。sga主要由共享池、数据缓冲区、重作日志缓冲区组成;其中数据缓冲区用来存储最近从数据文件中读写过的数据。

本教程操作环境:Windows7系统、Oracle 11g版、Dell G3电脑。

内存结构是oracle数据库最重要的组成部分之一,在数据库中的操作或多或少都会依赖到内存,是影响数据库性能的重要因素Oracle数据库中包括3个基本的内存结构:

下面给大家介绍一些内存结构中的sga。

oracle sga简介

sga全称“System Global Area”,中文意思为“系统全局区”,是ORACLE为实例分配的一组共享缓冲存储区,主要用于存放数据库数据和控制信息,该信息为数据库进程所共享(PGA不能共享的),以实现对数据库数据的管理和操作。

它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

SGA是一组共享内存结构, 被所有的服务和后台进程所共享。当数据库实例启动时,系统全局区内存被自动分配。当数据库实例关闭时,SGA内存被回收。 SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。

查询SGA区的情况:

SQL> show SGA Total System Global Area 3290345472 bytes Fixed Size 2217832 bytes Variable Size 1795164312 bytes Database Buffers 1476395008 bytes Redo Buffers 16568320 bytes SQL> select * from v$sga; NAME VALUE -------------------- ---------- Fixed Size 2217832 Variable Size 1795164312 Database Buffers 1476395008 Redo Buffers 16568320

Fixed Size表示固定区域,存储SGA各个组件的信息。不能修改大小。

Variable Size表示可变区域,比如共享池、java池、大池等。

Database Buffers表示数据库高速缓冲区。

Redo Buffers表示日志缓冲区。

SGA主要包括:

系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。

1、共享池(shared pool) :用来存储最近执行的SQL语句和最近使用的数据字典的数据。

它主要由两个内存结构构成:Library cache和Data dictionary cache

修改共享池的大小:ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;

Library Cache缓存被执行的SQL和PL/SQL的相关信息,即存放SQL语句的文本,分析后的代码及执行计划。实现常用语句的共享,使用LRU算法进行管理,由以下两个结构构成:Shared SQL area、Shared PL/SQL area;

Data Dictionary Cache缓存被使用的数据库定义,即存放有关表、列和其它对象定义及权限。它包括关于数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。在语法分析阶段,Server Process访问数据字典中的信息以解析对象名和对存取操作进行验证。数据字典信息缓存在内存中有助于缩短响应时间。

2、数据缓冲区 (database buffer cache):用来存储最近从数据文件中读写过的数据。

在数据高速缓冲区中存放着Oracle系统使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行读写,当数据高速缓冲区填满时,则系统自动去掉一些不常被用户访问的数据。如果用户要查的数据不在数据高速缓冲区时,Oracle自动从磁盘中去读取。数据高速缓冲区包括三个类型的区:

1) 脏数据区(Dirty Buffers):包含有已经改变过并需要写回数据文件的数据块。

2) 自由区(Free Buffers):没有包含任何数据并可以再写入的区,Oracle可以从数据文件读数据块该区。

3) 保留区(Pinned Buffers):此区包含有正在处理的或者明确保留用作将来用的区。

3、重作日志缓冲区(redo log buffer):用来记录服务或后台进程对数据库的操作。

主要用于恢复其中的每一项修改记录都被称为redo 条目。利用Redo条目的信息可以重做修改。

另外在SGA中还有两个可选的内存结构:

4、Java池(Java Pool): 用来存储Java代码。

5、大型池(Large Pool): 用来存储不与SQL直接相关的大型内存结构。备份、恢复使用。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有