Oracle arraysize 有哪些研究?

分类:编程技术 时间:2024-02-20 15:59 浏览:0 评论:0
0
Oracle arraysize 有哪些研究?相信很多没有经验的人都一头雾水。本文总结了问题的原因和解决方案。通过这篇文章,希望你能解决这个问题。


SYS@proc> desc aaa;

名称             为空?类型

---------------------------------------- --------------- ----------------------------

ID1                                                                                                                                                                           p>

ID2                                                         p; NUMBER(38)

ID3 NUMBER(38)

< br />

SYS@proc> 从 aaa 中选择 * ; /p>

---------- ---------- ---------- ----------

1 1 1 1 1

1 1 1 1 0


SYS@proc> select * from aaa1;


ID1 ID2 ID3 ID4

---- ------ ---------- ---- ------ ----------

1 1   1 0

1 1 1 1 1


SYS@proc> 从 aaa 中选择 *,其中 id1/id2= 1 且 id3/id4=1;

错误:

ORA-01476:除数等于零

< p>



未选择行

< br/>

SYS@proc> 设置数组大小 1

SYS@proc> /


ID1 ID2 ID3 ID4

------------ ---------- ------ ---- ----------

1 1 1 1 1 1

错误:

ORA-01476: 除数等于零




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

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

                                                                              

第 1 行错误:

ORA-01476: 除数为等于零

SYS@ proc> drop table aaa2 purge;


表已删除。


SYS@proc> 创建表 aaa2 (id1 int,id2 int,id3 int,id4 int,flag int);


表已创建。


SYS@proc>插入 aaa2 值(1,1,1,1,1);


已创建 1 行。


SYS@proc>插入aaa2值(1,1,1,1,2);


< / p>

已创建 1 行。


SYS@proc> 插入 aaa2 值(1,1,1,1,3 ) ;


已创建 1 行。


SYS @proc> 插入 aaa2 值(1,1,1,1,4);


创建 1 行。


SYS@proc>插入aaa2值(1,1,1,1,5);

< br />

已创建 1 行。


SYS@proc> 插入 aaa2 值(1,1,1 , 1,6);


已创建 1 行。


SYS@proc> 插入 aaa2 值(1,1,1,1,7);


已创建 1 行。


SYS@proc>插入aaa2值(1,1,1,1,8);

< p>

已创建 1 行。


SYS@proc> 插入 aaa2 值(1 , 1,1,1,9);


1已创建行。


SYS@proc> 插入 aaa2 值(1,1,1,1,10);
< /p>


已创建 1 行。


SYS@proc> 插入 aaa2 value(1,1,1,0,0);


已创建 1 行。


SYS@proc> commit;


提交完成。


SYS@proc> 分析表 aaa2 计算统计信息;


分析表。< br/>


SYS@proc> set arraysize 1

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


ID1 ID2 ID3 ID4 FLAG

-- -------- ---------- ---------- ---- ------ ----------

1 1 1  1 1 1 1

1 1 1 1 1 1 1 2

1 1 1 1 1 1 3

1 1 1   1 4

1 1 1 1 5

1 1 1 1 1 1 1 6

1 1 1 1 1   7

1 1 1 1 1 8

1 1 1 1 1 1 9

错误:

ORA-01476:除数等于零




选择了9行。

--从大量结果来看,arraysize为与1或2相同。这里有9个预见。


SYS@proc>从aaa2中选择*;


ID1 ID2 ID3 ID4 标志

------------ ---------- ---------- - --- ------ ----------

1 1 1 1 1 1

1 1 1 1 1 2

1 11 1 3

1 1 1 1 1 4

1 1 1 5

1 1 1 6

1 1 1 1 1 7

1 1 1 1 8

1 1 1 1 1 9

  1 1 1 1 1 10

1 1 1 1 0     0


已选择 11 行。


SYS@proc>

SYS@proc> 设置arraysize 2

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


< p> />

---------- ---------- ---------- --------- - ----------

1 1 1 1 1 1

1 1 1 1 2

1 1 1 1 1 1 3

1 1 1 1 1 4

1 1 1 1 15
< /p>

1 1 1 1 1 6

1 1 1 1 1 7

1 1 1 1 1 8

错误:

< p>ORA-01476: 除数等于零




选择了8行。

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

在游标中解析 #140496887317072 len=48 dep=0 uid=0 oct=3 LCD=0 tim=1514130832420098 hv=3007681721 ad='812bd000' sqlid='7cfwyuytnb55t'

从 id1/id2=1 和 id3/id4=1 的 aaa2 中选择 *

STMT 结束

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

执行#140496887317072:c=0,e=24,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2576342259 ,tim=1514130832420238

等待 #140496887317072: nam='SQL*Net 消息到客户端' ela= 5 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim= 1514130832420238

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

< p>等待 #140496887317072: nam='来自客户端的 SQL*Net 消息' ela= 476 驱动程序 id=1650815232 # bytes=1 p3=0 obj#=-1 tim=1514130832420842

等待 #140496887317072: nam='SQL*Net 消息到客户端' ela= 3 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832420907

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

等待 #140496887317072: nam='SQL*Net 来自客户端的消息' ela= 146 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421092

等待 #140496887317072: nam='发送给客户端的 SQL*Net 消息' ela= 2 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421137

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

等待#140496887317072: nam='来自客户端的 SQL*Net 消息' ela= 66 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421237

等待#140496887317072:nam='SQL*Net消息到客户端'ela=2驱动程序id=1650815232#bytes=1 p3=0 obj#=-1 tim=1514130832421277

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

等待 #140496887317072: nam='来自客户端的 SQL*Net 消息' ela= 60 驱动程序 id=1650815232 #bytes=1 p3 =0 obj#=-1 tim=1514130832421369

等待#140496887317072: nam='SQL*Netmessage to client' ela= 1 驱动程序 id=1650815232 #bytes=1 p3=0 obj# =-1 tim=1514130832421407

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

WAIT #140496887317072: nam='来自客户端的 SQL*Net 消息' ela= 410 驱动程序id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421848

WAIT #140496887317072: nam='SQL*Net message to client' ela= 2 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832421907

FETCH #14049688731第7072章:c=0,e=63,p=0,cr=1,cu=0,mis=0,r=1,dep=0,og=1,plh=2576342259,tim=1514130832421956
< /p >

STAT #140496887317072 id=1 cnt=10 pid=0 pos=1 obj=88977 op='表访问完整 AAA2 (cr=7 pr=0 pw=0 时间=94 us 成本=2 大小= 10 卡 =1)'

WAIT #140496887317072: nam='SQL*Net 中断/重置到客户端' ela= 28 驱动程序 id=1650815232 中断?=1 p3=0 obj#= -1 tim=1514130832422110

等待 #140496887317072: nam='SQL*Net 中断/重置客户端' ela= 120 驱动程序 id=1650815232 中断?=0 p3=0 obj#=-1 tim=1514130832422252

等待 #140496887317072: nam='来自客户端的 SQL*Net 消息' ela= 595 驱动程序 id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1514130832422889

关闭#140496887317072:c=0,e=14,dep=0,type =0,tim=1514130832422981

===== ================

所以实际上arraysize是1还是2,还是有区别的。不过从10046的角度来看并没有太大区别,从全表扫描或者其他可以正常返回结果的情况来看,值​​​​1 和 2 完全相同。

但事实上,无论arraysize的值是多少,默认情况下仅第一行就会直接向用户发送反馈,所以应该不需要设置它。
后面学习的逻辑阅读也存在一些问题,到12C差别就更大了。

看完上面的内容,你是否掌握了Oracle arraysize的研究方法呢?如果您想学习更多技能或者想了解更多相关内容,请关注行业资讯频道。感谢您的阅读!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Oracle arraysize 有哪些研究?

用户评论