This question is locked. New answers and comments are not allowed.
Hi,
I'm long time fan of Telerik OpenAccess/Data Access (TDA) and I used it frequently in many sucessfull projects. I like it!
2nd level cache is very handy for usual tasks. But now I felt in problem with huge data. I'm preparing new ASP.NET/WebForms application - eCommerce store. Nothing unusual, core of application are three tables with n:m relation: Products (ProductId, Name...), ProductsInCategories (ProductId, CategoryId...) and Categories (CategoryId, ParentCategoryId, Name...).
First problem is that there are over 100.000 rows in Products table - it means we have nearly million records in ProductsCategories table (every product can be in one or more categories). Second problem is that Categories are in tree structure and I want to use queries like "get all products from category XYZ and from all its childrens".
Using standard ASP.NET caching and "POCO" objects is quick and easy solution but now I want to utilise TDA and its 2nd level cache. Are there some general recommendations for using TDA internal caching with huge data? I tried both approaches with about 500.000 records:
1) I loaded data through TDA with LINQ, projected them into simple objects and IList of those objects cached. Caching took about 7 seconds and page working with those cached data is generated in about 10-20ms. Nice.
2) Second approach: I load data with TDA and let its second level cache store them (I increased limit of storable objects in backend TDA configuration to 1M). Caching List of ProductsCategories took a little more time (about 10 seconds, it is still acceptable), but working with those data and page generation (same operations as before) took about 100 ms. It is too much :( Also I found some strange behavior: if you did not specify number of records you want to retrieve from database in first call (LINQs .Take), TDA did not cache any data. If you specify number of records (eg. .Take(1000000)) TDA will cache it. Strange.
Can you reccomend me general approach for working with Telerik DataAccess with huge tables? Thank you!
I'm long time fan of Telerik OpenAccess/Data Access (TDA) and I used it frequently in many sucessfull projects. I like it!
2nd level cache is very handy for usual tasks. But now I felt in problem with huge data. I'm preparing new ASP.NET/WebForms application - eCommerce store. Nothing unusual, core of application are three tables with n:m relation: Products (ProductId, Name...), ProductsInCategories (ProductId, CategoryId...) and Categories (CategoryId, ParentCategoryId, Name...).
First problem is that there are over 100.000 rows in Products table - it means we have nearly million records in ProductsCategories table (every product can be in one or more categories). Second problem is that Categories are in tree structure and I want to use queries like "get all products from category XYZ and from all its childrens".
Using standard ASP.NET caching and "POCO" objects is quick and easy solution but now I want to utilise TDA and its 2nd level cache. Are there some general recommendations for using TDA internal caching with huge data? I tried both approaches with about 500.000 records:
1) I loaded data through TDA with LINQ, projected them into simple objects and IList of those objects cached. Caching took about 7 seconds and page working with those cached data is generated in about 10-20ms. Nice.
2) Second approach: I load data with TDA and let its second level cache store them (I increased limit of storable objects in backend TDA configuration to 1M). Caching List of ProductsCategories took a little more time (about 10 seconds, it is still acceptable), but working with those data and page generation (same operations as before) took about 100 ms. It is too much :( Also I found some strange behavior: if you did not specify number of records you want to retrieve from database in first call (LINQs .Take), TDA did not cache any data. If you specify number of records (eg. .Take(1000000)) TDA will cache it. Strange.
Can you reccomend me general approach for working with Telerik DataAccess with huge tables? Thank you!