oracle的sga

                                                               sga

   

SGA的管理

■有三种方式:

          ●8i:SGA的总大小由所有内存组件大小之和决定,不能直接定义SCA大小。对内部组件大小的修改必须在数据库重起                    后 才能生为,所以叫做SGA的静态管理。

          ●9i: SGA总大小由初始化参数SGA_ MAX SIZE确定,各个内存组件大小之和不能超过这个参数。在这个大小之下,                      SGA 各个内存组件可以在不重起数据库的情况下直接修改大小,所以叫做SGA的动态管理。

          ●10g:  SGA大小既可以像9i一样动态管理,也可以实施SGA的自动管理,只需要设置初始化参数SGA_ TARGET, SGA                       各个内存组件  三就可以由数据库自动设置大小,设置的依据来源于系统自动收集的统计信息

 

 ■在9i以后,SGA的内部组件大小可以动态调整,也可以由数据库自动管理,在设置内存大小的时候,分配的基本单位是粒            度(granule)。Granule是一段连续的虚拟内存,大小取决于SGA _MAX SIZE的大小

           ●如果SGA_ MAX _SIZE小于128M, Granule为4M, 否则Granule为16M

           ●各个内存组件分配大小必须是Granule的整倍数

           ●整个SGA最小不小于3个Granule大小

■9i中的规则如下:

       ●linux/unix
             SGA<=12BM granutle 4M

             SGA >128M granule 16M   

      ●Windows
            SGA<=128M granule 4M

            SGA >128M granule 8M

■10g中的分配规则为

        ● linuxunix

        ●Windows
            SGA<=1G granute 4M否则16M

shared pool

■用于存储:

   ◆最近执行的SQL 语句

   ◆最近使用的数据定义
■由两个与性能相关的部分组成:

   ◆库缓存
   ◆数据字典缓存
■由參数SHARED POOL SIZE决定大小

库缓存

■存储最近使用的SQL和PL/SQL语句的信息

■共享最常用的语句

■管理上遵循LRU规则

■包括两个部分:
   ◆共享SQL区

   ◆共享PLSQL区
■大小由Shared Pool的大小决定

数据字典缓存■存储在数据库中最近使用的定义
■包括数据文件,表,索引,列,用户,权限和其他的数据库对象
■在分析阶段,服务器进程查找数据字典去验证对象的名字以及是否是合法访问
■对于查询和DML语句,如果数据字典的信息在缓存中能够提高响应时间大小由Shared Pool的大小决定

SGA中关键的内存片段。特别是性能与扩展上。
是sqI.pl/sql程序进行语法分析,编译,执行的内存区域。
库lbrary cache数据字典data dictionary cache,控制结构control structure组成。shared pool. size 决定大小。10G以后自动管理。
过小导致latch争用,ora-0431 错误。Lbrarycache 争用与等待。
>alter system set flush shared pool命令可清除shared pool内存中信息与我们相关的就是lthrancrache 库缪油或sal语句绍油了
用户提交一个sq语可,通过PGA转建到SGA, oracle 对册可进行分析.

■如果以前执行过,则按照以前执行的计划执行,通常是软分析[soft parse|或快速软分析

    ◆通过PCA提交Sql语句>parse语句>soft parse->执行语句- >通过PCA输出

■如果没执行过,oracle 开始分析语句的语法,语义,按照优化器规则获得最佳执行计划,并在内存中保存这个语句与之对应    的执行计划等相关信息,便于下次快速调用。

   ◆通过PGA提交Sql语句parse语句hard parse→分析与得到优化方案[CBOor RB0|→根据优化方案制定执行计划》执行语句    ◆一-通过PGA输出

数据高速缓存区

■暂存从数据文件中获得的数据块的数据映像

■同样遵循LRU算法管理内存
■当再次需要操作这些数据时可以从内存中直接获取和更新,语句执行效率能够大幅度的提高
■初始化参数DB_ BLOCK SIZE决定了数据块的大小,这也是数据库I/O的最小单位
■数据高速缓存区由多个独立的子缓存池构成,可以独立的设置大小:
    ◆Default池  DB CACHE SIZE
    ◆Keep池  DB KEEP CACHE SIZERecycle池  

    ◆DB RECYCLE CACHE SIZE

■只有defualt池可以被sga自动管理

                                                                                                SQL

Buffer 

Cache

的大小

配置

 SELECT component,current_size,min_size FROM v$sga_dynamic_components;

 

使用

advice

来确认

buffer

cache

的大小

 alter system set dby cache_ size=20M scope=memory;
SELECT size_for_estimate "Cache Size(MB)",size_factor,buffers_for_estimate "Buffers",
estd_physical_read_factor est_read_factor,
estd_physical_reads estd_phy_red,
estd_physical_read_time est_phy_read_t FROM v$db_cache_advice
WHERE NAME='DEFAULT'AND block_size=(SELECT VALUE FROM v$parameter WHERE NAME='db_block_size');

在0LTP系统中,对于DB_CACHE_SIZE的设置,推荐配置是:

DB_CACHE_SIZE=SGA_MAX_SIZE/2~ SGA_MAX_SIZE*2/3

Block

状态

0,FREE, no valid block image

1,XCUR, a current mode block, exclusive to this instance

2, SCUR, a current mode block, shared with other instances

3,CR,a consistent read (stale) block image

4,READ, buffer is reserved for a block being read from disk

5, MREC, a block in media recovery mode

6,IREC, a block in instance (crash) recovery mode

select O.object_name,
decode(state,0,'free',1,'xcur',2,'scur',3,'cr',4,'read',5,'mrec',6,'irec',7,'write',8,'pi')state,count(*) blocks
from x$bh b,dba_objects O
where b.obj=O.data_object_id
group by O.object_name, state 
order by blocks desc;

 

lru_flag

LRU_ FLAG=2,表示lru链的冷端

LRU_ FLAG=8,表示在LRU链的热端

LRU_ FLAG=0,表示没有标识

select class,flag,state,1ru_f1ag from x$bh where dbarfil=1 and dbablk = 30;

pool



 
     

 

 

select decode (wbpd.bp_id,1,'keep',2,'recycle',3,'default',4,'2k pool',5,'4k pool',6,'8k pool',7,'16k pool8,',8,'32k pool',
'unknown') pool,bh.owner,bh.object_name object_name,count(1) numOfBuffers 
from x$kcbwds wds,x$kcbwbpd wbpd,
(select set_ds,x.addr,o.name object_name,u.name owner from sys.obj$ o,sys.user$ u, x$bh X 
where o.owner#=u.user# and o.dataobj#=x.obj and x.state!=0 and o.owner#!=0) bh
where wds.set_id >=wbpd.bp_lo_sid and wds.set_id<=wbpd.bp_hi_sid
and wbpd.bp_size!= 0 and wds.addr=bh.set_ds  --and object_name='T2'
group by decode (wbpd.bp_id,1,'keep',2,'recycle',3,'default',4,'2k pool',5,'4k pool',6,'8k pool',7,'16k pool8,',8,'32k pool',
'unknown'),bh.owner,bh.object_name
order by 1, 4,3,2;

SELECT obj object,dbarfil file#,dbablk block,tch touches
FROM x$bh WHERE
tch>10 ORDER BY tch desc

 

例,

10%

 

 

 

 

 

 

 

select 
decode(state,0,'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),
3,'BEING USED',state) "BL0CK STATUS",
count(*) from x$bh
group by 
decode(state,0,'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),
3,'BEING USED',state)

 

最浪费

内存的

前10个

语句占

所有语

句的比

例,建

议控制

在5%

以内

 

 

 

 

 

select sum(pct_bufgets) "Percent" from 
(select rank() over ( order by buffer_gets desc)
as rank_bufgets,to_char(100*ratio_to_report(buffer_gets)over (),'999.99')
pct_bufgets from v$sqlarea) where rank_bufgets<11;

  
  
  
  
  

 

 

重做日志缓冲区■暂存数据库中所有数据块的改变
■内存管理方法是FIFO
■重做日志被用于提供数据恢复功能
■暂存重做日志的目的是为了提高语句的执行速度
■大小由参数LOG_ BUFFER决定,但这个内存区不能动态调整大小
大池

■大池是系统全局区中可选的一个内存区
■主要在下面几种情况下使用:
    ◆共享服务器的用户全局区(UGA)
    ◆使用RMAN作 备份恢复-|并行进程  09
■大小由参数LARGE POOL SIZE决定,也可以动态改变大小

java池

■是系统全局区中一个可选内存区。

■用于Java程序的解析 和执行
■大小由参数JAVA POOL_ SIZE决定,也可以动态调整
■如果granule是4M, 默认是24M: 如果granule是16M, 默认大小是32M如果在数据库创建时选择了安装JVM组件,那么这     个池必须配置

   
   

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/535513.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL:主从相关知识点盘点

本篇内容包括&#xff1a;MySQL 主从复制简介、主从复制的原理以及主从搭建 一、MySQL 主从复制简介 在实际的生产中&#xff0c;为了解决Mysql的单点故障已经提高MySQL的整体服务性能&#xff0c;一般都会采用**「主从复制」**。 比如&#xff1a;在复杂的业务系统中&#x…

oracle导出expdp

expdp/impdp 是 oracle 10g 版本后推出的服务器端工具--数据泵&#xff0c;作用是为了将数据库中的逻辑对象&#xff0c;比如表、用户、全库、表空间进 行导入&#xff0c;导出 命令解析 ATTACH ATTACH [[schema_name.]job_name] schema_name 表示用户名,job_name 表示导出的作…

oracle检查点

检 查 点 概述 ■l当修改数据时&#xff0c;需要首先将数据读入内存中&#xff08;Buffer Cache&#xff09;&#xff0c;修改数据的同时&#xff0c;Oracle会记录重做信息&#xff08;Redo&#xff09;用于恢复。因 为有了重做信息的存在&#xff0c;Oracle不需要在提交时…

文献翻译:Java theory and practice: Fixing the Java Memory Model, Part 2

Java theory and practice: Fixing the Java Memory Model, Part 2 译&#xff1a;Java 理论与实践&#xff1a;修复 Java 内存模型&#xff0c;第 2 部分 翻译自&#xff1a;http://www.ibm.com/developerworks/library/j-jtp03304/&#xff08;原文写于2004年3月&#xff0…

常用系统函数oracle

单行函数日期函数ADD_MONTHS(date, n):用于从一个日期值增加或减少一些月份 MONTHS_BETWEEN(date1, date2):判断两个日期之间相差的月份 LAST_DAY(date): 函数返回包含日期的月份的最后一天 ROUND(date[,fmt]): 将日期d按照fmt指定的格式舍入&#xff0c;fmt为字符串 TRU…

oracle游标

游标&#xff08;cursor &#xff09;是一个私有的SQL工作区域,是一个指向上下文区的句柄或指针&#xff0c;位于内存中的 "临时表"。 游标是SQL的一个内存工作区&#xff0c;由系统或用户以变量的形式定义。游标的作用就是用于临时存储从数据库中提取的数据块。在某…

系统学习SpringFramework:Spring IOC

本篇内容包括&#xff1a;IOC 和 DI 的概念、Spring 容器&#xff0c;即 BenaFactory 与 AplicationConext 等 IOC 相关内容。 一、IOC 和 DI 的概念 1、IOC IoC&#xff08;Inversion of control &#xff09;即“控制反转”&#xff0c;它是一种设计思想而非一个技术实现。…

rowid

ROWID的格式rowidOOOOOOFFFBBBBBBRRR说明数据对象号相对文件号数据块号行号 上述表格是Oracle 9i及以上版本数据库中的rowid格式: 6位对象号3位相对文件号6位数据块号3位行号&#xff0c;是一个18位的64进制值。这个18位的64进制值在数据库内却是以10个bytes合计80个bit的二进制…

系统学习SpringFramework:循环依赖与三级缓存

本篇内容包括&#xff1a;Spring 中的循环依赖问题&#xff08;包括 Spring 中的循环依赖问题和Spring 中的循环依赖的 5 种场景的介绍&#xff09;、Spring 三级缓存介绍、4 个 Spring 无法自动解决的循环以来场景以及其对应的手动解决方式。 一、Spring 中的循环依赖问题 1、…

深入理解Java虚拟机:Java类的加载机制

本篇内容包括&#xff1a;Java 类的加载机制&#xff08;Jvm 结构组成、Java 类的加载&#xff09;、类的生命周期&#xff08;加载-验证-准备-解析-初始化-使用-卸载&#xff09;、类加载器 以及 双亲委派模型。 一、Java 类的加载机制 1、 Jvm 结构组成 Jvm 整体组成可分为…

新版谷歌浏览器开启Flash支持

浏览器地址栏中输入chrome://version查看Chrome浏览器、Flash插件的版本信息。 Chrome 69.0-70.0版本Chrome 71.0-74.0及以后版本谷歌浏览器地址栏中输入【chrome://flags/#enable-ephemeral-flash-permission】&#xff0c;将【Enable Ephemeral Flash Permissions】从【Defau…

深入理解Java虚拟机:Java垃圾回收机制

本篇内容包括&#xff1a;JAVA 垃圾回收机制概述、有哪些内存需要回收、如何回收&#xff08;标记-清除、标记-整理&#xff08;标记-清除-压缩&#xff09;、复制&#xff08;标记-复制-清除&#xff09;、分代收集等算法&#xff09; 以及 何时进行垃圾回收等内容&#xff01…

深入理解Java虚拟机:Java垃圾回收器

本篇内容包括&#xff1a;7 种 Jvm 垃圾回收器的介绍、对比 以及 对应的 Jvm 参数设置&#xff0c;这 7 种包括了&#xff1a;Serial、ParNew 以及 Parallel Scavenge 三种新生代回收器 和 &#xff1a;Serial Old、Parallel Old 以及 CMS 三种老年代回收器&#xff0c;此外还有…

网络协议:什么是网络分层的七四五

本篇内容包括&#xff1a;网络分层七层、五层、四层网络协议概念的介绍&#xff0c;IOS 体系结构的介绍与构成、TCP/IP体系结构的简介及与IOS体系的关系 以及五层体系结构的介绍。 一、七层、五层、四层网络协议概念 1、关于网络协议 网络协议&#xff0c;即是指计算机网络中…

网络协议:一文搞懂Socket套接字

本篇内容包括&#xff1a;Socket 套接字的简介、Socket 套接字的分类、Java 中的 Socket 即 java.net.ServerSocket、java.net.Socket 的使用&#xff0c;以及Java 使用套接字 Scoket 编程的Demo。 一、Socket 简介 TCP&#xff08;传输控制协议&#xff09;是一种面向连接的、…

网络协议:透彻解析HTTP协议

本篇内容包括&#xff1a;HTTP 协议定义及其特点概述、关于 URL 定义及分类概述、Request 请求、Response 响应 以及 浏览器访问一个网站的全过程 等内容… 一、HTTP 协议概述 HTTP&#xff08;HyperText Transfer Protocol&#xff09; 即 超文本传输协议&#xff0c;它是一种…

Redis系列:Redis的概述与安装

Redis(Remote Dictionary Server) 是一个使用 C 语言编写的&#xff0c;开源的&#xff08;BSD许可&#xff09;高性能非关系型&#xff08;NoSQL&#xff09;的键值对数据库。 本篇内容包括&#xff1a;Redis 简介&#xff08;为什么快&#xff1f;为什么单线程&#xff1f;优…

Redis系列:Redis持久化机制与Redis事务

Redis 是个基于内存的数据库。那服务一旦宕机&#xff0c;内存中数据必将全部丢失。所以丢失数据的恢复对于 Redis 是十分重要的&#xff0c;我们首先想到是可以从数据库中恢复&#xff0c;但是在由 Redis 宕机时&#xff08;说明相关工作正在运行&#xff09;且数据量很大情况…

TCP连接的建立与终止

TCP连接的建立与终止 1.三次握手 TCP是面向连接的&#xff0c;无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方…