- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle arraysize 和 fetch size 参数与性能优化说明
/Linux/2011-07/37996.htm
一. 参数说明
1.1 arraysize 参数
?????? Oracle sqlplus 有很多设置,这个在我之前的blog有说明:
????????????? Oracle sqlplus 常用命令总结 /Linux/2010-02/24553.htm
?
?????? 昨天和owind 讨论问题的时候,他强调了这个参数,通过一些测试,确实与性能这块有很大影响。
?????? Arraysize specifies how many rows SQL*Plus will fetch in a call. The number n can be between 1 and 5000.
?
?????? arraysize定义了一次返回到客户端的行数,当扫描了arraysize?行后,停止扫描,返回数据,然后继续扫描。
?????? 这个过程就是统计信息中的SQL*Net?roundtrips?to/from?client。因为arraysize 默认是15行,那么就有一个问题,因为我们一个block 中的记录数一般都会超过15行,所以如果按照15行扫描一次,那么每次扫描要多扫描一个数据块,一个数据块也可能就会重复扫描多次。
?
?????? 重复的扫描会增加consistent?gets 和?physical?reads。 增加physical reads,这个很好理解,扫描的越多,物理的可能性就越大。
?????? consistent gets,这个是从undo里读的数量,Oracle 为了保证数据的一致性,当一个查询很长,在查询之后,数据块被修改,还未提交,再次查询时候,Oracle根据Undo 来构建CR块,这个CR块,可以理解成数据块在之前某个时间的状态。 这样通过查询出来的数据就是一致的。
?????? 那么如果重复扫描的块越多,需要构建的CR块就会越多,这样读Undo 的机会就会越多,consistent gets 就会越多。
?
?????? 如果数据每次传到客户端有中断,那么这些数据会重新扫描,这样也就增加逻辑读,所以调整arraysize可以减少传的次数,减少逻辑读。
?
?????? 关于CR 参考我的Blog:
?????? CR (consistent read) blocks create 说明
?????? /Linux/2011-07/37997.htm
?
?????? 所以通过上面的说明,arraysize 参数如果过低,会影响如physical reads,consistent gets 还有SQL*Net?roundtrips?to/from?client次数。
?
永久保存arraysize 参数:
?????? 可以该参数保存到glogin.sql 或者login.sql 文件里,这样可以永久生效,不必每次都去set 指定。
?
-- 查看默认值
SYS@anqing2(rac2) show arraysize
arraysize 15
?
--手工修改arraysize
SYS@anqing2(rac2) set arraysize 100
SYS@anqing2(rac2) show arraysize
arraysize 100
?
--修改glogin.sql
[oracle@rac2 admin]$ pwd
/u01/app/oracle/product/10.2.0/db_1/sqlplus/admin
[oracle@rac2 admin]$ ls
glogin.sql? help? iplus? libisqlplus.def? libsqlplus.def? plustrce.sql? pupbld.sql
?
在glogin.sql里添加:
set arraysize 5000
?
--重新登陆,查询
SYS@anqing2(rac2) show arraysize
arraysize 5000
?
?
1.2? fetch size 参数
?????? arraysize 和 fetch size 参数都是客户段的一个参数,需要在客户段来设置,arraysize 是在sqlplus 中设置的,如果我们通过程序去连数据库,那么这个参数就是Fetch size。 它的作用和arraysize 一样。 Fetch size 默认是10,一般改成50就ok了,太大会消耗内存。
?
?????? The JDBC fetch size gives the JDBC driver a hint as to the number of
您可能关注的文档
最近下载
- 通化(2009)1006-Ⅲ时速200公里客货共线接触悬挂安装图(第Ⅲ册非限位定位器转换柱).pdf
- 桂电数电期末试卷及答案.docx VIP
- 三年级语文童话、寓言类文章阅读专项训练(含答案,适合各版本教材).docx VIP
- 部编版六年级上册语文期中测试卷【及答案】.doc VIP
- 亲子舞蹈活动方案.pptx
- 解热镇痛抗炎药药理学(共34张PPT).pptx VIP
- XXXX有限公司安全隐患排查方案(2025版).docx VIP
- 高考语文答题技巧-(太重要了).pdf VIP
- (消毒供应中心)提高外来器械返洗率PDCA.pptx VIP
- 2025北京师范大学校医院事业编制医生岗招聘2人笔试模拟试题及答案解析.docx VIP
原创力文档


文档评论(0)