Array Fetch Size研究.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Array Fetch Size研究

Array Fetch Size研究 /2010/array-fetch-size-study.html 测试环境 不同Array Fetch Size下的统计输出 查询的工作过程 Array Fetch Size对网络的影响 Array Fetch Size对consistent gets的影响 Array Fetch Size与竞争 Array Fetch Size与内存 总结 延伸阅读 Array Fetch Size这个参数决定了客户端一次从数据库获取数据的行数,写过访问Oracle数据库程序的人可能会发现Array Fetch Size在默认情况下设置的值都比较小,当他把Array Fetch Size设定值加大之后,自己的程序明显的跑的更快了。既然越大Array Fetch Size对于程序运行越快,那为什么默认的Array Fetch Size值会那么小,多大的Array Fetch Size值才是个合适的呢?本文就试图探索下这方面的内容。 top测试环境 1 2 3 4 5 6 7 8 9 ORAINST@orcl SELECT * FROM v$version; ? BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release .0 - Prod PL/SQL Release .0 - Production CORE??? .0????? Production TNS for Linux: Version .0 - Production NLSRTL Version .0 - Production 1 2 3 4 oracle@orainst[orcl]:~$ uname -a Linux 2.4.21-50a6smp #1 SMP Wed Oct 3 18:57:25 PDT 2007 i686 i686 i386 GNU/Linux oracle@orainst[orcl]:~$ cat /etc/redhat-release Red Hat Enterprise Linux WS release 3 (Taroon Update 4) top不同Array Fetch Size下的统计输出 SQLPlus中可以自由的设定Array Fetch Size的大小,因此我们的实验都是基于SQLPlus来完成的,实际上不管是什么类型客户端还是自己基于OCI写程序,都是能单独设置Array Fetch Size的,SQLPlus设置方法为SET ARRAYSIZE number,默认情况下的Array Fetch Size大小为15,最大值允许设置的值是5000,可以通过SHOW ARRAYSIZE来查看当前使用的值。 现在来建立一个测试表,然后设定不同Array Fetch Size,在观察不同情况下查询输出的统计数据有什么样的区别。 首先建立测试数据: 1 2 3 4 5 6 7 -- 创建测试表 ORAINST@orcl CREATE TABLE t AS SELECT * FROM all_objects; Table created. ? -- 表建立完毕之后打开统计输出 ORAINST@orcl SET AUTOT TRACE STATISTICS ORAINST@orcl SET TIMING ON 在表T上面我们没有建立任何的索引,现在我们查询表T中的一行数据,在查询一行数据时,查询的统计数据将不会受到Array Fetch Size设定值的影响,这种情况下的consistent gets可以认为是对表T做一次全表扫描所必须要读取的块的数量,统计输出结果如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ORAINST@orcl select * from t where object_id=100; Elapsed: 00:00:00.01 ? Statistics ---------------------------------------------------------- ??????????1? recursive calls ??????????0? db block gets ????????147? consistent gets ??????????0? physical reads ??????????0? redo size ???????1205? bytes sent via SQL*Net to client ????????38

文档评论(0)

yaobanwd + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档