FOR ALL ENTRIES IN 应该注意的问题

注意三点:

1、使用前必须判断使用的内表是否为空

  如果为空,就会使WHERE条件失效,相当于没有指定任何限制的取值,注意的是整个WHERE条件失效,

而不是仅仅FOR ALL ENTRIES IN 的字段。

2、默认的DISTINCT

FOR ALL ENTRIES IN 是把一个SQL分解成多个SQL去执行,然后把结果汇总去重后返回,这个去重的动作其实就是做一个DISTINCT.

注意:取值后内表的若是包含数量和金额时,需要汇总的话,要注意这一点

解决办法:加一个不会让重复数据删除的字段或者换个写法吧

3、内表大的时候占用内存会很大

如果IT_MAT很大的话,比如几百万数据,执行这个SQL占用的内存是可观的,有时候会达到内存使用的上限,而且效率很差,所以尽量避免大数据量下使用 FOR ALL ENTRIES IN吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值