对Oracle数据库性能优化一点总结_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

对Oracle数据库性能优化一点总结

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

黑客防线网安网讯:  要提高应用系统的性能,在维持现有硬件平台不变的情况下,主要采用的方法由以下几种:  l 调整操作系统参数,提高操作系统的管理性能;  l 调整数据库管理系统的参数,提高数据库管...

  要提高应用系统的性能在维持现有硬件平台不变的情况下主要采用的方法由以下几种:

  l 调整操作系统参数,提高操作系统的管理性能;

  l 调整数据库管理系统的参数,提高数据库管理系统的性能;

  l 修改应用程序,提高应用程序的运行效率

  一、ORACLE数据库的内存结构

  本文将着重对SGA的结构进行介绍:

  SGA 通常又被称作 Shared Global Area,包括以下几个共享区域:

  l 数据缓存(the Database buffer cache)

  数据缓存存放从数据库文件中读取的数据,可分为剩余缓存(Free buffer)、正在使用的缓存(Pinned buffer)、已使用缓存(Dirty buffer)

  l 日志缓存(redo log buffer)

  存放数据库已改变的信息。

  l 共享存储池(shared pool)

  共享存储池主要由三个方面构成:

Library cache

  Library cache 包括共享SQL区、用户自有SQL区、PL/SQL过程和程序包及控制结构;

Dictionary Cache

  存放数据库字典信息,如:表及视图名、列名及数据类型、各用户的存取权限;

Control structures   

  l 请求及响应队列(request and response queues)(仅用于多线索模式)

  l 其他(other miscellaneous information)

  二、ORACLE 内存的工作机制

  当用户请求被接受后,ORACLE 的内存分配将分以下几个步骤进行:

  1.首先检查共享SQL区有无该SQL语句,如有在使用该SQL区执行用户的SQL语句(称作一次library cache hit),否则为该SQL语句分配共享SQL 区(称作一次library cache miss),同时为该语句分配自有SQL 区。

  2.检查Dictionary cache 中有无要访问的表/视图信息,若无则将其读入Dictionary cache 中(称作一次rowcache miss)。

  3.检查数据缓存(Database buffer cache),有无要操作的数据,如有则使用当前的缓存(称作一次 data buffer hit),否则,将按下列步骤为该数据请求新的缓存(称作一次 data buffer miss):

  1) 搜索least-recently-used(LRU) list,若发现dirty buffer 则写入dirty list 并继续搜索,如发现free buffer则将其分配给该用户,同时将该buffer移至most-recently-used(MRU) list,若未能搜索到free buffer,则触发DBWR进程将一些dirty buffer 写入磁盘,并将这部分dirty buffer 释放为free buffer。

  2) 从数据文件中将要操作的数据读入buffer cache 中;

  4.如果用户执行的是INSERT、DELETE、UPDATE等操作,系统将为其分配redo log buffer,用于记录数据的变更情况,当redo log buffer中无free buffer时触发LGWR进程,将redo log buffer中的一些信息写如数据库的LOG FILE 中。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-11934-1.html
网站维护教程更新时间:2012-03-23 00:26:11  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer