



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
DB_FILE_MULTIBLOCK_READ_COUNT参数和区间尺寸的设置问题 2011-02-14 10:23我们知道Oracle通过两种方式从表中获取数据: 通过ROWID(通常使用索引扫描时) 通过全表扫描如果通过ROWID读取数据,表中的区间数就不是读性能的一个因素(如果使用并行查询,那么一个表中有较多的区间的数量可以明显提高I/O的性能),Oracle将通过ROWID直接找到需要的行,并获取相应数据。如果是全表扫描,那么区间的尺寸大小就有可能导致性能问题。因为全表扫描时,Oracle会一次读取多个Blocks。每次读取的块数将受初始化参数DB_FILE_MULTIBLOCK_READ_COUNT和操作系统的I/O缓冲区大小的限制。比如说,如果Oracle Block的大小是4KB,操作系统I/O缓冲区大小是64KB,那么在全表扫描时每次最多可以读取16各块(Oracle Blocks),所以此时将DB_FILE_MULTIBLOCK_READ_COUNT的值设置为超过16也改变不了全表扫描的性能了。通常,设置DB_FILE_MULTIBLOCK_READ_COUNT参数是如下考虑的:(1) 使用一个单独的数据文件创建一个新的表空间(2) 在该表空间中创建一个单独的未索引的表(3) 查询V$FILESTAT以验证该测试的初始统计值(4) 在表上执行全表扫描(5) 查询V$FILESTAT以确定该测试的终止统计值,并从中减去开始统计值。将PhyBlkRds值除以PhyRds以确定有效的多块读计数。(6) 删除这个用于测试的表空间C:sqlplus /as sysdbaSQL*Plus: Release 9.2.0.1.0 - Production on 星期六 6月 28 10:11:22 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.已连接到空闲例程。SQL startupORACLE 例程已经启动。Total System Global Area 93395628 bytesFixed Size 453292 bytesVariable Size 67108864 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。数据库已经打开。SQL show parameter db_block_size;NAME TYPE VALUE- - -db_block_size integer 8192SQL show parameter DB_FILE_MULTIBLOCK_READ_COUNT;NAME TYPE VALUE- - -db_file_multiblock_read_count integer 16SQL使用一个单独的数据文件创建一个新的表空间:SQL create tablespace lunar2 datafile d:lunar.dbf size 10m3 default storage(initial 1m next 1m pctincrease 0);表空间已创建。在该表空间中创建一个单独的未索引的表:SQL create table lunar2 tablespace lunar3 as select * from dba_objects;表已创建。SQL select relative_fno from dba_data_files2 where tablespace_name=LUNAR;RELATIVE_FNO- 15查询V$FILESTAT以验证该测试的初始统计值:SQL select phyrds,phyblkrd from v$filestat2 where file#=15; PHYRDS PHYBLKRD- - 0 0在表上执行全表扫描:SQL select count(*) from lunar;COUNT(*)- 27547查询V$FILESTAT以确定该测试的终止统计值:SQL select phyrds,phyblkrd from v$filestat2 where file#=15; PHYRDS PHYBLKRD- - 24 376SQLPHYRDS 和 PHYBLKRD 的初始统计的值都是0;PHYRDS 和 PHYBLKRD 的终止统计的值分别是24和 376;PHYRDS 的终止统计的值 PHYRDS 的初始统计的值 24;PHYBLKRD 的终止统计的值 PHYBLKRD 的初始统计的值 376;PHYBLKRD 的差值 / PHYRDS 的差值 15.67所以,有效的多块读计数是16需要注意的是,如果不是用新的表空间测试,那么测试得到第3步和第5步的差值后,在会话级改变DB_FILE_MULTIBLOCK_READ_COUNT参数,然后再次得到第3步和第5步的差值,并重复测过程。记住,不要将DB_FILE_MULTIBLOCK_READ_COUNT参数设置的比计算的值高。设置区间尺寸大小的考虑思路应该是合理的利用Oracle的能力以便在全表扫描时执行多块存取,同时读操作又是不能跨区间的。举个例子,假设操作系统I/O缓冲区大小是64KB,考察读取一个640KB大小的表,如果设置为每个区间64KB,一共10个区间,如果执行全表扫描,则Oracle需要10次读操作(相当于一次读一个区间);如果设置为一个640KB的区间,则Oracle还是需要10次读操作(因为操作系统I/O缓冲区大小是64KB),可见压缩区间并不能提高性能;如果设置为每个区间80KB,一共8个区间,则每个区间Oracle需要读两次,第一次读64KB,第二次读这个区间剩余的16KB(读操作不能跨区间),所以总共需要16次读操作(相当于一次读一个区间)。区间尺寸的设置对性能的影响是显而易见的。 综上,总结起来设置区间大小时需要考虑下面的问题: 创建明显大于或者等于操作系统I/O缓冲区大小的区间(最好是操作系统I/O缓冲区大小的整数倍)。这样,如果区间非常大,即使区间大小不是操作系统I/O缓冲区大小的整倍数,也只需要很少的附加读操作(如果上面的640KB和80KB的差异)。 设置DB_FILE_MULTIBLOCK_READ_COUNT以充分利用操作系统I/O缓冲区的大小。应考虑DB_FILE_MULTIBLOCK_READ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 考点攻克人教版八年级物理《功和机械能》专项练习试卷(含答案解析)
- 难点解析-人教版八年级上册物理声现象《噪声的危害和控制》定向练习试卷(详解版)
- 陕西中考英语5年(21-25)中考真题分类汇编教师版-语法选择
- 考点解析人教版八年级上册物理声现象《噪声的危害和控制》同步测试试题
- 通辽市中医院学科建设能力考核
- 跟旅行社签订合同
- 保定市人民医院烧伤心理康复干预考核
- 钢筋工劳务分包合同
- 单间租赁合同
- 太原市中医院软组织细胞学考核
- 物业费涨价原因
- 数学广角 搭配问题(课件)(共24张)2025-2026学年度人教版数学三年级上册
- 辽宁省名校联盟2025年高三9月份联合考试政治(含答案)
- 国产美妆品牌完美日记短视频营销策略研究
- 渔业现场执法培训课件
- 鼻腔解剖课件
- 2025年中国YAG激光治疗仪行业市场全景分析及前景机遇研判报告
- 居住空间设计案例方案
- 《老年活动策划与组织》全套教学课件
- 2025至2030中国军用电池行业产业运行态势及投资规划深度研究报告
- 角膜内皮细胞课件
评论
0/150
提交评论