Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C++ C#
Please suggest any ready made control which can load huge data (25000000 Rows of data) faster.
 
This control will be used in the UI.
 

additional information by OP copied from comment below
Sorry i didnt explain things properly in my question.
 
My requirement is to get a control which can be used in a UI application to show huge no of data .
Posted 1-Apr-13 23:16pm
arun_pk1.4K
Edited 1-Apr-13 23:52pm
Nelek63.3K
v3
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

I would have a look at the DatagridView's virtual mode
 
MSDN : DataGridView.VirtualMode[^]
 
I have used this to display 1 million rows (around 20 - 30 columns) before and it works very fast
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 3

This is not a product or full source to use, but a nice tutorial of how to do so. C++ is used in these tutorials (not C#).
 

http://www.catch22.net/tuts/memory-techniques-part-1[^]
http://www.catch22.net/tuts/memory-techniques-part-2[^]
  Permalink  
v2
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Use in Index in SQL.
You Get Fast Data Access.
For Eg.
Defining Indexes with SQL Server 2005[^]
  Permalink  
Comments
arun_pk at 2-Apr-13 4:36am
   
Sorry i didnt explain things properly in my question.
My requirement is to get a control which can be used in a UI application to show huge no of data .
ramrooney at 2-Apr-13 4:48am
   
Hi,
 
I need some more clarification to understand your question. Is it okay to load your data in the form of a grid ? Or you are specific about any type of controls to be used in your UI ?
Style-7 at 2-Apr-13 4:53am
   
http://blogs.msdn.com/b/oldnewthing/archive/2007/01/11/1450795.aspx
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 4

As other have mentionned, you have to use virtual mode when loading lot of data and you have to ensure that not all data is cached.
 
I don't know how DatagridView virtual mode works (since I uses Infragistics grids) but you might have to cache some rows depending on the inner working of the control and how much time it takes to get a row.
 
Sometime I uses a cache of 65536 rows that contains last row for a given 65536 modulo of the index. It is easy to compute and keep a relatively large number of rows in memory so control does not have to get data too often.
 
However given that a screen has typically less than 1000 available pixel in height and you might display around 50 rows at a time, it become impossible to view all items by only dragging the scrollbar around 50000 items. Arrow can still be used to handle larger set of data but for it become very painfull to find specific items when the grid approach 1 million rows.
 
Not only that but for very large data set, you might have to disable some features like sorting as they might become very slow... or you might have to implement that outside of the UI (for exemple at the database level).
 
Anyway for such large data (250 million rows), you cannot rely only on existing controls. If a row would require only 10 bytes, you would need 2.5 GB of RAM to load all in memory.
 
You have to uses some common sense and profiling might also help to get an idea of preformance of memory usage.
 
In my opinion for such large data, you have to split the data somehow (paging) or do some filtering (show most relevant items). If the data is based on time, then you should probably split the data at regular interval like displaying a single day. Otherwise, you might consider doing paging and load say 10000 rows at a time. At that level, you should not have performance problem and it is still very usable for a user (easy to view all data by scrolling with the thumb box)
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 280
1 Jochen Arndt 150
2 Kornfeld Eliyahu Peter 120
3 PIEBALDconsult 110
4 Richard MacCutchan 105
0 OriginalGriff 6,055
1 DamithSL 4,621
2 Maciej Los 4,087
3 Kornfeld Eliyahu Peter 3,500
4 Sergey Alexandrovich Kryukov 3,294


Advertise | Privacy | Mobile
Web02 | 2.8.141220.1 | Last Updated 3 Apr 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100