我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle arraysize的研究是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle arraysize的研究是怎样的

Oracle arraysize的研究是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。


  1. SYS@proc> desc aaa;

  2.  Name                                      Null?    Type

  3.  ----------------------------------------- -------- ----------------------------

  4.  ID1                                                NUMBER(38)

  5.  ID2                                                NUMBER(38)

  6.  ID3                                                NUMBER(38)

  7.  ID4                                                NUMBER(38)


  8. SYS@proc> select * from aaa;


  9.        ID1        ID2           ID3        ID4

  10. ---------- ---------- ---------- ----------

  11.          1            1                1          1

  12.          1             1               1           0


  13. SYS@proc> select * from aaa1;


  14.        ID1         ID2           ID3        ID4

  15. ---------- ---------- ---------- ----------

  16.          1            1               1           0

  17.          1            1                1           1


  18. SYS@proc> select * from aaa where id1/id2=1 and id3/id4=1;

  19. ERROR:

  20. ORA-01476: divisor is equal to zero




  21. no rows selected


  22. SYS@proc> set arraysize 1

  23. SYS@proc> /


  24.        ID1        ID2           ID3        ID4

  25. ---------- ---------- ---------- ----------

  26.          1             1                1           1

  27. ERROR:

  28. ORA-01476: divisor is equal to zero




  29. SYS@proc> select * from aaa1 where id1/id2=1 and id3/id4=1;

  30. select * from aaa1 where id1/id2=1 and id3/id4=1

  31.                                           *

  32. ERROR at line 1:

  33. ORA-01476: divisor is equal to zero

  1. SYS@proc> drop table aaa2 purge;


  2. Table dropped.


  3. SYS@proc> create table aaa2 (id1 int,id2 int,id3 int,id4 int,flag int);


  4. Table created.


  5. SYS@proc> insert into aaa2 values(1,1,1,1,1);


  6. 1 row created.


  7. SYS@proc> insert into aaa2 values(1,1,1,1,2);


  8. 1 row created.


  9. SYS@proc> insert into aaa2 values(1,1,1,1,3);


  10. 1 row created.


  11. SYS@proc> insert into aaa2 values(1,1,1,1,4);


  12. 1 row created.


  13. SYS@proc> insert into aaa2 values(1,1,1,1,5);


  14. 1 row created.


  15. SYS@proc> insert into aaa2 values(1,1,1,1,6);


  16. 1 row created.


  17. SYS@proc> insert into aaa2 values(1,1,1,1,7);


  18. 1 row created.


  19. SYS@proc> insert into aaa2 values(1,1,1,1,8);


  20. 1 row created.


  21. SYS@proc> insert into aaa2 values(1,1,1,1,9);


  22. 1 row created.


  23. SYS@proc> insert into aaa2 values(1,1,1,1,10);


  24. 1 row created.


  25. SYS@proc> insert into aaa2 values(1,1,1,0,0);


  26. 1 row created.


  27. SYS@proc> commit;


  28. Commit complete.


  29. SYS@proc> analyze table aaa2 compute statistics;


  30. Table analyzed.


  31. SYS@proc> set arraysize 1

  32. SYS@proc> select * from aaa2 where id1/id2=1 and id3/id4=1;


  33.        ID1         ID2           ID3        ID4        FLAG

  34. ---------- ---------- ---------- ---------- ----------

  35.          1             1               1           1             1

  36.          1             1               1           1             2

  37.          1             1               1          1             3

  38.          1             1               1           1              4

  39.          1          1               1           1             5

  40.          1             1               1           1              6

  41.          1             1                1          1             7

  42.          1          1               1           1              8

  43.          1            1                1           1             9

  44. ERROR:

  45. ORA-01476: divisor is equal to zero




  46. 9 rows selected.

  47. --从大量结果上看,arraysize为1或者2是一样的。这里为9预见。


  48. SYS@proc> select * from aaa2;


  49.        ID1        ID2            ID3        ID4       FLAG

  50. ---------- ---------- ---------- ---------- ----------

  51.          1            1                1           1              1

  52.          1             1                1          1              2

  53.          1            1                1           1              3

  54.          1             1               1          1             4

  55.          1            1                1           1              5

  56.          1             1                1          1             6

  57.          1             1               1          1             7

  58.          1          1          1          1             8

  59.          1            1               1          1             9

  60.          1            1                1          1           10

  61.          1            1                1           0              0


  62. 11 rows selected.


  63. SYS@proc>

  1. SYS@proc> set arraysize 2

  2. SYS@proc> select * from aaa2 where id1/id2=1 and id3/id4=1;


  3.        ID1      ID2         ID3    ID4      FLAG

  4. ---------- ---------- ---------- ---------- ----------

  5.      1        1           1      1         1

  6.      1        1           1      1         2

  7.      1        1           1      1         3

  8.      1        1           1      1         4

  9.      1        1           1      1         5

  10.      1        1           1      1         6

  11.      1        1           1      1         7

  12.      1        1           1      1         8

  13. ERROR:

  14. ORA-01476: divisor is equal to zero




  15. 8 rows selected.

语句对应的10046,可以看出是返回了9行,但是从上边看是8行,很奇怪。

  1. PARSING IN CURSOR #140496887317072 len=48 dep=0 uid=0 oct=3 lid=0 tim=1514130832420098 hv=3007681721 ad='812bd000' sqlid='7cfwyuytnb55t'

  2. select * from aaa2 where id1/id2=1 and id3/id4=1

  3. END OF STMT

  4. PARSE #140496887317072:c=0,e=1221,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=2576342259,tim=1514130832420093

  5. EXEC #140496887317072:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2576342259,tim=1514130832420198

  6. WAIT #140496887317072: nam='SQL*Net message to client' ela= 5 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832420238

  7. FETCH #140496887317072:c=0,e=64,p=0,cr=2,cu=0,mis=0,r=1,dep=0,og=1,plh=2576342259,tim=1514130832420331

  8. WAIT #140496887317072: nam='SQL*Net message from client' ela= 476 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832420842

  9. WAIT #140496887317072: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832420907

  10. FETCH #140496887317072:c=0,e=36,p=0,cr=1,cu=0,mis=0,r=2,dep=0,og=1,plh=2576342259,tim=1514130832420924

  11. WAIT #140496887317072: nam='SQL*Net message from client' ela= 146 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421092

  12. WAIT #140496887317072: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421137

  13. FETCH #140496887317072:c=0,e=28,p=0,cr=1,cu=0,mis=0,r=2,dep=0,og=1,plh=2576342259,tim=1514130832421151

  14. WAIT #140496887317072: nam='SQL*Net message from client' ela= 66 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421237

  15. WAIT #140496887317072: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421277

  16. FETCH #140496887317072:c=0,e=26,p=0,cr=1,cu=0,mis=0,r=2,dep=0,og=1,plh=2576342259,tim=1514130832421290

  17. WAIT #140496887317072: nam='SQL*Net message from client' ela= 60 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421369

  18. WAIT #140496887317072: nam='SQL*Net message to client' ela= 1 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421407

  19. FETCH #140496887317072:c=0,e=25,p=0,cr=1,cu=0,mis=0,r=2,dep=0,og=1,plh=2576342259,tim=1514130832421420

  20. WAIT #140496887317072: nam='SQL*Net message from client' ela= 410 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421848

  21. WAIT #140496887317072: nam='SQL*Net message to client' ela= 2 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421907

  22. FETCH #140496887317072:c=0,e=63,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=2576342259,tim=1514130832421956

  23. STAT #140496887317072 id=1 cnt=10 pid=0 pos=1 obj=88977 op='TABLE ACCESS FULL AAA2 (cr=7 pr=0 pw=0 time=94 us cost=2 size=10 card=1)'

  24. WAIT #140496887317072: nam='SQL*Net break/reset to client' ela= 28 driver id=1650815232 break?=1 p3=0 obj#=-1 tim=1514130832422110

  25. WAIT #140496887317072: nam='SQL*Net break/reset to client' ela= 120 driver id=1650815232 break?=0 p3=0 obj#=-1 tim=1514130832422252

  26. WAIT #140496887317072: nam='SQL*Net message from client' ela= 595 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832422889

  27. CLOSE #140496887317072:c=0,e=14,dep=0,type=0,tim=1514130832422981

  28. =====================

所以其实arraysize是1还是2,还是存在区别的。不过从10046上看却是没多大区别,从全表扫描或者其他能够正常返回结果的情况下,值为1和2是完全一样的。

但是实际上无论arraysize的值是多少,默认第一行单独会直接发送反馈给用户的,所以应该是不用设置的。
后边研究的逻辑读也有点问题,在12C里边差别更大。

看完上述内容,你们掌握Oracle arraysize的研究是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle arraysize的研究是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

自研的Devops工具是怎样的

这篇文章给大家介绍自研的Devops工具是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。2018年为了解决日常运维中的痛点以及更高效的推进运维工作,我们自研并完善了几个工具系统,这些系统无一例外的帮我们节约了时间
2023-06-19

深入研究:Sybase和Oracle数据库的技术对比

Sybase和Oracle是两个常见的关系型数据库管理系统,它们在企业领域被广泛应用。本文将深入研究Sybase和Oracle数据库的技术对比,包括各自的优势、劣势和适用场景,并给出具体的代码示例进行比较。一、Sybase数据库Syba
深入研究:Sybase和Oracle数据库的技术对比
2024-03-08

软考和职称的关系究竟是怎样的?

  有些考生并不清楚软考和职称之间到底是怎样的关系,那么软考和职称的关系究竟是怎样的?请准备报名的考生赶紧跟编程学习网小编一起来看看软考和职称的关系吧!  软考属于专业技术资格考试,根据天津市信息化人才网发布的《资格、职务和职称的关系问答》,具体内容如下:  问:专业技术资格、专业技术职务和职称的含义及关系是什么?  答:
软考和职称的关系究竟是怎样的?
2024-04-18

深入研究CSS框架,提升网页布局和样式的能力

CSS(Cascading Style Sheets)是一种用于描述网页样式和布局的语言,它使得网页设计更加灵活和易于管理。然而,编写和管理大型网页样式表可能会变得复杂和耗时。为了解决这个问题,开发人员们创建了各种CSS框架,这些框架提供了
深入研究CSS框架,提升网页布局和样式的能力
2023-12-27

Oracle存储过程是怎样的

这篇文章主要介绍“Oracle存储过程是怎样的”,在日常操作中,相信很多人在Oracle存储过程是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle存储过程是怎样的”的疑惑有所帮助!接下来,请跟
2023-06-17

网通路由器究竟是怎样突破限制的呢?

  随着我们国家路由这一个行业的不断发展,现在大家也可以看到网通路由器的市场需求也在不断的加大。那么大家知道网通路由器是怎样突破限制的吗?在这篇教程里面,小编会主要和大家简单的介绍一种Cisco路由技术,那就是网通路由器究竟是怎样突破限制的?  大家都应该知道其实共享卫士的一个特色,那就是保护用户上网的隐私,隐藏用户上
网通路由器究竟是怎样突破限制的呢?
2024-04-17

编程热搜

目录