Согласно документации если мы выполняем цикл по таблице возвращаемой из функционального метода, конструкторных выражений, или табличных выражений, с последующим присвоением к символьным переменным (ASSIGNING) или ссылочным переменным REFERENCE INTO, среда создаёт временную таблицу для данного цикла.
If the internal table is specified as the return value or result of a functional method, a constructor expression, or a table expression, the value is persisted for the duration of the loop. Afterwards, it is no longer possible to access the internal table.
Пример:
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  | 
						CLASS lcl_app DEFINITION.   PUBLIC SECTION.     TYPES tt_data TYPE STANDARD TABLE OF i WITH EMPTY KEY.     DATA mt_data TYPE tt_data.     METHODS: get_data RETURNING VALUE(rt_data) TYPE tt_data,              change_data. ENDCLASS. CLASS lcl_app IMPLEMENTATION.   METHOD get_data.     rt_data = mt_data.   ENDMETHOD.   METHOD change_data.     LOOP AT get_data( ) ASSIGNING FIELD-SYMBOL(<lv_data>).       <lv_data> = <lv_data> + 1.     ENDLOOP.   ENDMETHOD. ENDCLASS. START-OF-SELECTION.   DATA(lo_app) = NEW lcl_app( ).   lo_app->mt_data = VALUE #( ( 1 ) ).   lo_app->change_data( ).   cl_demo_output=>display( lo_app->mt_data ).  | 
					
Далее рассмотрим как это выглядит при анализе используемой памяти в отладке.
Виртуальная сортировка внутренних таблиц, добавленная в ABAP 7.52, описана всего одним методом — virtual_sort, класса 
