cancel
Showing results for 
Search instead for 
Did you mean: 

Fetching 4 Million records

former_member192584
Participant
0 Kudos

Hi Gurus,

Please enlighten me on below situation.

I need to fetch approx 4 million records combining 5 tables (total 38 fields) using OData and display in SAP UI5 application using sap.ui.table. Will this hamper the performance of the UI application or crash the application ?

I do not want to use pagination and bind to OData directly as i need to filter on all 38 fields (5 tables) which is tedious if each time the service is hitting gateway the filter has to occur on gateway. If we bind JSON model to sap.ui.table all the filter happens on the UI layer itself which in turn reduces the round trip and also code complexity.

Please advice on the approach.

boghyon
Product and Topic Expert
Product and Topic Expert
0 Kudos

> If we bind JSON model to sap.ui.table all the filter happens on the UI layer itself which in turn reduces the round trip

Yeah, but to do that, those 4 million records need to be available on the client first. Assuming the size of a single entity is about 1 KByte, users then need to download 4 GB of data every time they launch the app.

former_member192584
Participant
0 Kudos

Hi boghyon.hoffmann ,

Yes if its 4GB its a huge data, but the entity mostly consists of single character value (flags) i could see 12KB for more than 1000 entries so the memory for 4 million would be around 40MB approx ( Max ) ruling out blank entries will reduce the size further, in this case will there be problem considering the waiting time for downloading is torelable ?

esjewett
Active Contributor

You are creating a world of pain for yourself with this approach, and in the end it isn’t going to work. 4 million records is on the edge of possible with JS, but UI5’s model processing will not be able to handle it. Just use the built in backend filtering capabilities.

nabheetscn
Active Contributor
0 Kudos

Vigneshkkar what exactly is the business context/requirement here? 4 Million records today will tomorrow become 40 and on and on. Your application will crash unless and until we understand the bigger picture. Can you please let us know the context?

Nabheet

Accepted Solutions (0)

Answers (1)

Answers (1)

Jsousa
Participant

There are too many records..

You can use the growing property where you have a lot of entries in some elements like sap.m.List:

The List control provides a container for all types of list items. For mobile devices, the recommended limit of list items is 100 to assure proper performance. To improve initial rendering of large lists, use the "growing" feature. Please refer to the SAPUI5 Developer Guide for more information..
See section "Lists" in the documentation for an introduction to sap.m.List control.

Maybe your better solution will be create "Before & Next" buttons and load entries with restrictions..

former_member192584
Participant
0 Kudos

Hi Jorge,

We are using sap.ui.table control as it supports filtering on the column (38 columns needs to be filtered). The growing mechanism (threshold) is available only for direct OData binding and not for JSON model binding in sap.ui.table or am i missing something ?

If we directly bind the table to OData the filtering should be done in gateway not on UI.