SAP ABAP语法 Select single 和 FOR ALL ENTRIES IN 到底哪个性能更好
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP ABAP语法 Select single 和 FOR ALL ENTRIES IN 到底哪个性能更好相关的知识,希望对你有一定的参考价值。
不能做对比!Select single 是选择单条数据用的,类似 up to 1 rows。
FOR ALL ENTRIES IN itab[] 意思是符合内表关键字的数据。用For all entries in 比用join效率高好多,但前提条件是IN itab 不能数据太庞大,不然还不如Select + loop。
如果硬要比较那肯定是Select single 性能最好 参考技术A Select single 和 For all entries in 不是一回事, 怎么拿来比较
Select single 应该是和 Select .. up to one rows 来比, 据说是Selelct single效率高,
1.据说Select .. up to one rows 是选择全部符合条件的, 然后再选其中的第一条
2.据说Select single是选到一条就结束了
For all entries in 后面接一个内表, 用前要确保内表有值, 用For all entries in 比用join效率高好多, 尤其数据多的时候, 不过代码要多写点。。。本回答被提问者和网友采纳
SAP ABAP:如何获取select某个条件下的条目数
在ABAP中,有时候我们需要取某一条件下的条目数,要如何实现呢?
这里有程咬金的三板斧:
(1)第一板斧:系统变量sy-dbcnt
1 DATA: L_COUNT TYPE I. 2 SELECT EQUI~EQUNR 3 EQKT~EQKTX 4 ILOA~SWERK 5 INTO TABLE GT_EQUI 6 FROM EQUI 7 LEFT JOIN EQKT ON EQUI~EQUNR = EQKT~EQUNR AND SPRAS = SY-LANGU 8 LEFT JOIN EQUZ ON EQUI~EQUNR = EQUZ~EQUNR AND EQUZ~DATBI = ‘99991231‘ 9 INNER JOIN ILOA ON EQUZ~ILOAN = ILOA~ILOAN 10 WHERE ILOA~SWERK IN S_SWERK 11 AND EQUI~ERDAT IN S_ERDAT . 12 13 IF SY-SUBRC = 0. 14 L_COUNT = SY-DBCNT. 15 ENDIF.
(2)第二板斧:select count (*)
1 DATA: L_COUNT TYPE I. 2 SELECT COUNT( * ) 3 INTO L_COUNT 4 FROM EQUI 5 LEFT JOIN EQKT ON EQUI~EQUNR = EQKT~EQUNR AND SPRAS = SY-LANGU 6 LEFT JOIN EQUZ ON EQUI~EQUNR = EQUZ~EQUNR AND EQUZ~DATBI = ‘99991231‘ 7 INNER JOIN ILOA ON EQUZ~ILOAN = ILOA~ILOAN 8 WHERE ILOA~SWERK IN S_SWERK 9 AND EQUI~ERDAT IN S_ERDAT . 10 11 IF SY-SUBRC = 0. 12 13 ENDIF.
(3)第三板斧:select count (*)
1 DATA: L_COUNT TYPE I. 2 SELECT EQUI~EQUNR 3 EQKT~EQKTX 4 ILOA~SWERK 5 INTO TABLE GT_EQUI 6 FROM EQUI 7 LEFT JOIN EQKT ON EQUI~EQUNR = EQKT~EQUNR AND SPRAS = SY-LANGU 8 LEFT JOIN EQUZ ON EQUI~EQUNR = EQUZ~EQUNR AND EQUZ~DATBI = ‘99991231‘ 9 INNER JOIN ILOA ON EQUZ~ILOAN = ILOA~ILOAN 10 WHERE ILOA~SWERK IN S_SWERK 11 AND EQUI~ERDAT IN S_ERDAT . 12 13 IF SY-SUBRC = 0. 14 * L_COUNT = SY-DBCNT. 15 DESCRIBE TABLE GT_EQUI LINES L_COUNT. 16 ENDIF.
以上是关于SAP ABAP语法 Select single 和 FOR ALL ENTRIES IN 到底哪个性能更好的主要内容,如果未能解决你的问题,请参考以下文章
工作笔记之 SELECT 语句在 SAP ABAP 中的用法总结(上)
SAP ABAP select 语句为啥取不到数据(确认后台表中有数据)