Oracle优化123.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle优化123

监控缓冲区的命中率 数据库缓冲区(Buffer Cache): 存放数据库中数据库块的copy. 它由一组缓冲块组成,这些缓冲块为所有与该实例相连的用户进程共享. 缓冲块的数目由初始化参数DB_Block_buffers确定, 缓冲块的大小由初始化参数DB_BLOCK_SIZE确定. 大的数据块可提高查询速度. 日志缓冲区(Redo Log Buffer): 存放数据操作的更改信息. 它们以日志项(redo entry)的形式存放在日志缓冲区中. 当需要进行数据库恢复时, 日志项用于重构或回滚对数据库所做的变更. 日志缓冲区的大小由初始化参数LOG_BUFFER确定. 大的日志缓冲区可减少日志文件IO的次数. 后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中, 可启动ARCH后台进程进行日志信息归档. 共享池(shared pool): 包含用来处理的sql语句信息. 它包含共享sql区和数据字典存储区. 共享sql区包含执行特定的sql语句所用的信息. 数据字典区包含用于存放数据字典, 它为所有用户进程共享. Cursors: 一些内存指针, 执行待处理的sql语句. 其他信息区: 除了上述几个信息区外, 还包括一些进程之间的通信信息(如封锁信息); 在多线程服务器配置下, 还有一些程序全局区的信息, 请求队列和响应队列等. 数据库缓冲区命中率 select name,value from v$sysstat where name in (physical reads, physical reads direct, physical reads direct (lob), session logical reads); select 1 - ((physical.value - direct.value - lobs.value) / logical.value) Buffer Cache Hit Ratio from v$sysstat physical, v$sysstat direct, v$sysstat lobs, v$sysstat logical where physical.name = physical reads and direct.name = physical reads direct and lobs.name = physical reads direct (lob) and logical.name = session logical reads; 改进数据库缓冲区的性能 修改data buffer cache的大小 调整database buffer cache的性能最简单的办法就是修改它的大小. 占SGA的45%最合适。 1, DB_BLOCK_SIZE主数据库块大小默认是8K, 在建立完数据库之后就不能改变。 2, DB_CACHE_SIZE(默认缓冲区池)默认48M, 我们主要修改这个参数以提高性能。 Alter system set db_cache_advice = on; 用oracle推荐的统计顾问, 在正常操作半个小时之后可以执行如下查询得到推荐的大小。 select name,size_for_estimate,v$db_cache_advice.ESTD_PHYSICAL_READS from v$db_cache_advice ?where block_size=8192 and advice_status=ON; 另外, 我们可以通过下述语句查询哪些对象正缓存在buffer cache中, 正使用多少个buffer cache缓冲区。 select do.owner,do.object_name,do.object_type,count(distinct a.BLOCK#) NUM of buffers from v$bh a, dba_objects do where a.OBJD = do.object_id and do.owner = CTL group by do.owner,do.object_name,do.object_type 3, 使用多个缓冲池 Alter system set db_cache_size = 300M; Alter system set db_keep_cache_size = 150M; Alter system set db_recycle_cache_size = 30M; 将表分配给保持区 Alter table col_cust storage(buffer_pool keep); 使用下面语句可以查看分配

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档