Nun, Marc ist richtig, dass die Übertragung XLSX ist definitiv besser/schneller als JSON.
ABAP JSON-Tools sind nicht so reich aber für die meisten Manipulationen ausreichend. Weitere besondere Aufgaben können über interne Tabellen und Transformationen erledigt werden. Es wird daher dringend empfohlen, Ihre Operationen (XLSX >> JSON) auf dem Backend-Server auszuführen.
Was betrifft Backend DB-Tabelle, ich unterstütze Chris N, dass das Einfügen von 10M String in String-Feld ist eine schlechteste Idee, die jemals vorgestellt werden kann. Die empfohlene Methode zum Speichern großer Dateien in transparenten Tabellen ist XSTRING type. Dies ist eine Art von BLOB für ABAP, die im Umgang mit binären Daten viel schneller ist.
Ich habe einige SAT Leistungstests auf meinem Beispiel 14-Millionen-Datei gemacht und das ist, was ich habe.
INSERT in XSTRING Feld:

INSERT in STRING Feld:

Wie Sie DB-Operationen Netto-Zeit unterscheidet sich für deutlich wahrnehmen kann, nicht von STRING.
Der Upload-Code kann wie folgt aussehen:
DATA: len type i,
lt_content TYPE standard table of tdline,
ws_store_tab TYPE zstore_tab.
"Upload the file to Internal Table
call function 'GUI_UPLOAD'
exporting
filename = '/TEMP/FILE.XLSX'
filetype = 'BIN'
importing
filelength = len
tables
data_tab = lt_content
.
IF sy-subrc <> 0.
message 'Unable to upload file' type 'E'.
ENDIF.
"Convert binary itab to xstring
call function 'SCMS_BINARY_TO_XSTRING'
exporting
input_length = len
FIRST_LINE = 0
LAST_LINE = 0
importing
buffer = zstore_tab-file "should be of type XSTRING!
TABLES
binary_tab = gt_content
exceptions
failed = 1
others = 2
.
IF sy-subrc <> 0.
MESSAGE 'Unable to convert binary to xstring' type 'E'.
ENDIF.
INSERT zstore_tab FROM ws_store.
IF sy-subrc IS INITIAL.
MESSAGE 'Successfully uploaded' type 'S'.
ELSE.
MESSAGE 'Failed to upload' type 'E'.
ENDIF.
Für das Parsen und Manipulieren XLSX mehr AS ABAP-Wrapper bereits vorhanden ist, Beispiele sind here, here und here.
All dies ist über Backend-Seite Optimierung. Optimierung auf dem Frontend sind willkommen von UI5-Experten (zu denen ich nicht gehörend), aber allgemeine SAP-Empfehlung ist es, alle massiven Manipulation zu Anwendungsserver zu bewegen.
Kommt diese Zeichenfolge vom Frontend? Wenn ja, können Sie es möglicherweise im Backend zum Speichern generieren? – hirse
hirse, es kommt vom Frontend. Ich lese ein Excel-Blatt, konvertiere es dann in den JSON und speichere es als String. –
Können Sie nicht einfach die Excel-Datei hochladen und speichern? XLSX-Dateien sind grundsätzlich ZIP-Dateien, daher sind sie möglicherweise kleiner als Ihr JSON. – Marc