当前位置:  数据库>oracle

Oracle db_file_mulitblock_read_count参数

    来源: 互联网  发布时间:2017-05-21

    本文导语: 本文档讨论DB_FILE_MULTIBLOCK_READ_COUNT参数的建议用法和设定。 1、何为DB_FILE_MULTIBLOCK_READ_COUNT? 初始化参数DB_FILE_MULTIBLOCK_READ_COUNT决定了,在一次全表扫描时,一次I/O操作所读取的数据库最大的块数。这个参数的设置可以减少一次全...

本文档讨论DB_FILE_MULTIBLOCK_READ_COUNT参数的建议用法和设定。

1、何为DB_FILE_MULTIBLOCK_READ_COUNT?

初始化参数DB_FILE_MULTIBLOCK_READ_COUNT决定了,在一次全表扫描时,一次I/O操作所读取的数据库最大的块数。这个参数的设置可以减少一次全表扫描请求的I/O次数,从而提高数据库性能。

虽然将此参数设置为一个很高的值,可能全面提升数据库性能,是一个很诱人的想法,但是必须要考虑几个因素之后再进行设置。下面进行介绍。

2、这个参数是怎么工作的呢?

I/O是操作系统的一个函数,因为操作系统对此参数的设置划定了具体的限制。Oracle能够读取块大小是受操作系统一次I/O操作能够读到最多字节数限制的,(I/O参数  max_io_size),如果参数设置的值超过了操作系统最大限制值,参数值将被默认为O / S的默认值:(max_IO_size / db_block_size),因此设置此参数前应该先了解操作系统的I/O读取的参数max_io_size和限制值。

参数的设定决定了一个表完整扫描所需要请求的I/O次数,例如:如果参数DB_FILE_MULTIBLOCK_READ_COUNT=32,Oracle 块大小 DB_BLOCK_Size=8k,那么读取一个256K的表只需一次I/O操作,因此他提高了表扫描速度和查询性能。

3、调谐分析

事实上I/O总数都是被要求的 ,全表扫描取决于一些因素,例如:表大小,并行查询是否被使用等。基于成本的优化包括所有这些因素,包括参数DB_FILE_MULTIBLOCK_READ_COUNT设定的扫描表耗费的成本,基于成本的优化将使全表扫描比索引扫描耗费的成本更低。

下面给出全表扫描时的执行计划展现,通过BSTAT/ESTAT 统计报告展现出多块读取类似于读取散列的数据文件,散列读是指将不同的数据块通过缓冲池读取到数据块中,读取散列文件通常是全表扫描的耗费成本。BSTAT/ESTAT 是一个调谐init.ora 非常有用的工具。

设置DB_FILE_MULTIBLOCK_READ_COUNT参数的目的是使表扫描更快,I/O一次读取内容更多。这个值是通过每一个表扫描时所读取的块数,求得平均值得到的,目的是使每次的全表扫描只通过一次的I/O操作就可以完成。数据库调谐是一个反复迭代的过程,这是一个使用工具TKPROF分析应用程序细节和使用BSTAT/ESTAT统计分析或是使用动态视图例如v$sysstat and v$sesstat的过程。

4、限制性

设置DB_FILE_MULTIBLOCK_READ_COUNT参数需要考虑的几点重要问题。

了解你的应用对于你设置DB_FILE_MULTIBLOCK_READ_COUNT最佳参数是非常重要的,例如:OLTP应用很少执行。为全表扫描设置DB_FILE_MULTIBLOCK_READ_COUNT的参数很大是没有好处的,事实上可能会降低数据库性能,当要减少由于读取多块时所花费的相对成本,有些时候基于成本的优化对全表扫描更加有利。

如果DB_FILE_MULTIBLOCK_READ_COUNT设置过低,额外的I/O也被要求完成,有一个不足5个Oracle 块大小的数据组成的表和一个由5个或者更多的块组的大表,就需要对数据库的表和性能进行深入的分析了,DB_FILE_MULTIBLOCK_READ_COUNT受到操作系统的限制,修改参数值前应该查询Oracle对操作系统的系统要求的说明文档。

设置DB_FILE_MULTIBLOCK_READ_COUNT过高会使服务大量消耗系统内存并且导致全表扫描更频繁的选择基于成本的优化方式。

参数最优设置的计算方法:db_block_size * db_file_multiblock_read_count

DB_FILE_MULTIBLOCK_READ_COUNT受操作系统读取多块因素影响。

DB_FILE_MULTIBLOCK_READ_COUNT不能够超过操作系统I/O参数MAX_IO_SIZE 公式为:db_block_buffers/4。

综合衡量,设置值超过32将使获得的性能劣于32时的性能。

案例:

环境:On HP/UX RDBMS version 7.3.3.0, if the product  按公式计算参数 :(db_block_size * db_file_multiblock_read_count) 超过64K,会出现内核越界和Oracle错误ORA-7445 ,解决方法,减小db_file_multiblock_read_count 设置值,关重启实例。此Bug已经在版本7.3.3.3中解决 补丁包Patch 433762on version 7.3.2 for Solaris 可设置 db_file_multiblock_read_count = 128 Oracle为 8k db_block_size的块大小。


    
 
 

您可能感兴趣的文章:

  • 深入解析Oracle参数及参数文件
  • Oracle数据库访问参数文件的顺序
  • Oracle初始参数与当前用户
  • Oracle中serveroutput参数一次设置永久保存方法
  • Oracle的spfile参数文件
  • Linux Oracle RAC内核参数
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • Sun Solaris运行Oracle数据库所需的内核参数
  • Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
  • Oracle Streams存储过程中的一些参数
  • 快速修复Oracle参数文件的另类方法
  • jps连接oracle9i数据库出现内部参数错
  • oracle 参数文件audit_trail的认识
  • 在linux下安装oracle时,使用sysctl检查系统参数时出现许多error信息,不知道怎么回事,望高手指点!
  • 每日Oracle:配置日志模式的相关参数log_archive_des
  • Oracle 子程序参数模式,IN,OUT,NOCOPY
  • Oracle 使用set修改数据库运行参数
  • oracle impdp network_link参数使用介绍
  • Oracle数据库中系统初始化参数分析
  • Oracle 启动例程 STARTUP参数说明
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,