我目前正在学习 ABAP,任何人都可以解释为什么t_table2 = t_table1
明显快于APPEND LINES OF t_table1 TO t_table2
?
t_table1, t_table2 是内部表
我目前正在学习 ABAP,任何人都可以解释为什么t_table2 = t_table1
明显快于APPEND LINES OF t_table1 TO t_table2
?
t_table1, t_table2 是内部表
我不能说这是一个完整的原因(幕后可能还有更多我不知道的事情),但其中一些原因肯定包括以下内容。这里要注意一点:在中小型数据集上,速度差异可以忽略不计。
t_table2 = t_table1
只需获取所有数据并复制它,覆盖t_table2
(它不会append
)。在某些情况下(例如传递参数时),数据甚至不会被复制。可以使用相同的数据,并且只有在需要更改 t_table2 时才会生成副本。
APPEND LINES OF t_table1 TO t_table2
基本上是一个循环,它逐行追加记录。
我提到的原因append
是因为表的覆盖可以像从a
to复制数据(或在极少数情况下的数据引用)一样简单b
,而 append 执行检查表是否已排序、索引等。即使表处于最基本的状态,附加内部表也是比覆盖变量稍微复杂的过程。