large data hidden column
Hello, I have one problem and would like to have suggestion on how to solve it.
I am currently using one hidden column that holds 2 years of historical data in order to calculate summaries. I does not consume to much memory (average application consuption is aroud 200 MB)
Now I have a requisite to increase the size of those colums to 8 years of data. The first attempt to do that increase the memory consuption to (2 GB)
I wonder if there is a better solution to handle this type of situation.
Thanks for sugestions in advance
SIGN IN To post a reply.
3 Replies
AK
Adhikesevan Kothandaraman
Syncfusion Team
September 10, 2015 07:27 AM UTC
Hi Felipe,
Thank you for contacting Syncfusion Support.
We are unclear and need to clarify few things from your post. It will be helpful for us to provide a proper solution.
Clarification:
Thank you for contacting Syncfusion Support.
We are unclear and need to clarify few things from your post. It will be helpful for us to provide a proper solution.
Clarification:
1) Is that you need to calculate the Summary value for hidden columns also using SummaryValueDescriptor? If no, then you can remove those columns from binding using, for example, Select SQL query or TableDescriptor.Columns.Remove() methods while setting the data source.
2) Is that the memory consumption gets high while large data along with the summaries or particularly calculating the summary value of the hidden columns?
3) Which of these two methods you are using for hiding the columns?
Method 1:
//Remove the VisibleColumns from the table descriptor collection
this.gridGroupingControl1.TableDescriptor.VisibleColumns.Remove("ColumnName");
Method 2:
//Hide the columns by setting the column width as
this.gridGroupingControl1.TableModel.Cols.Hidden["ColumnName"] = true;
Regards,
Adhi.
FB
Felipe Bahiana Almeida
September 10, 2015 01:51 PM UTC
Question 1 - I am not using the SummaryValue, I use the manual calculated sumaries.
Question 2 - I do not calculate sumaries on hidden columns. There is one visible column that holds the value for a particular item, but to calculate sumaries, I have to use data that is in a column of the datasource, but there is no equivalent column in the TableDescriptor.
Question 3 - None of them. The column exists in the DataSouce (DataTable) but the table descriptor does not have a ColumnDescriptor for that.
VS
Venkatesh Sundaram
Syncfusion Team
September 11, 2015 11:41 AM UTC
Hi Felipe,
Please use the below optimization settings to increase the performance in GridGroupingControl.
girdGroupingControl.InvalidateAllWhenListChanged = false;
girdGroupingControl.AllowedOptimizations = EngineOptimizations.All;
girdGroupingControl.CounterLogic = EngineCounters.YAmount;
girdGroupingControl.UseDefaultsForFasterDrawing = true; // GDI interop drawing, FirstNRecords Summaries used to increase painting performance
girdGroupingControl.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords;
girdGroupingControl.TableOptions.ColumnsMaxLengthFirstNRecords = 100;
Refer the sample from our browser sample shipped along with below location. it demonstrates performance behavior in GridGroupingControl.
Grid Grouping Samples -> Engine Optimization Demo
Grid Grouping Samples -> Grouping Performance Demo
Here are some suggestions for the memory foot print:
The performance of loading the data’s can improve by making the child table of the Grid to load on demand. It avoids the performance delay by loading the data’s of the child only when it is expanded or needed.
The property UseLazyUniformChildListRelation must set to true to make the child table load on demand.
gridGroupingControl1.UseLazyUniformChildListRelation = true;
To solve the memory footprint issue, avoid all the values to be cache. Set the CacheRecordValues as false.gridGroupingControl1.Engine.CacheRecordValues = false;
To support for groups and filtered records for large data sources, reduce the memory footprint by disabling the counters where the application is not needed.
gridGroupingControl1.Engine.CounterLogic = EngineCounters.YAmount;
To reduce the auto size calculation for the column to some rows, where the performance can be increased.It can be done by providing the FirstNRecords to the ColumnsMaxLengthStrategy, and specifying the number of record in ColumnMaxLengthFirstNRecords.
gridGroupingControl.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords;
gridGroupingControl.TableOptions.ColumnsMaxLengthFirstNRecords = 50;//the number of records you want checked.
Regards,
Venkat.
Please use the below optimization settings to increase the performance in GridGroupingControl.
girdGroupingControl.InvalidateAllWhenListChanged = false;
girdGroupingControl.AllowedOptimizations = EngineOptimizations.All;
girdGroupingControl.CounterLogic = EngineCounters.YAmount;
girdGroupingControl.UseDefaultsForFasterDrawing = true; // GDI interop drawing, FirstNRecords Summaries used to increase painting performance
girdGroupingControl.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords;
girdGroupingControl.TableOptions.ColumnsMaxLengthFirstNRecords = 100;
Refer the sample from our browser sample shipped along with below location. it demonstrates performance behavior in GridGroupingControl.
Grid Grouping Samples -> Engine Optimization Demo
Grid Grouping Samples -> Grouping Performance Demo
Here are some suggestions for the memory foot print:
The performance of loading the data’s can improve by making the child table of the Grid to load on demand. It avoids the performance delay by loading the data’s of the child only when it is expanded or needed.
The property UseLazyUniformChildListRelation must set to true to make the child table load on demand.
gridGroupingControl1.UseLazyUniformChildListRelation = true;
To solve the memory footprint issue, avoid all the values to be cache. Set the CacheRecordValues as false.gridGroupingControl1.Engine.CacheRecordValues = false;
To support for groups and filtered records for large data sources, reduce the memory footprint by disabling the counters where the application is not needed.
gridGroupingControl1.Engine.CounterLogic = EngineCounters.YAmount;
To reduce the auto size calculation for the column to some rows, where the performance can be increased.It can be done by providing the FirstNRecords to the ColumnsMaxLengthStrategy, and specifying the number of record in ColumnMaxLengthFirstNRecords.
gridGroupingControl.TableOptions.ColumnsMaxLengthStrategy = GridColumnsMaxLengthStrategy.FirstNRecords;
gridGroupingControl.TableOptions.ColumnsMaxLengthFirstNRecords = 50;//the number of records you want checked.
Regards,
Venkat.
SIGN IN To post a reply.
- 3 Replies
- 3 Participants
-
FB Felipe Bahiana Almeida
- Sep 9, 2015 02:28 PM UTC
- Sep 11, 2015 11:41 AM UTC
8/26/2026 06:47:41 AM
Sun, 15 December 2024 03:30:00 UTC
Sun, 15 December 2024 03:30:00 AM
Wed, 16 Feb 2022 04:59:00 UTC