This is a migrated thread and some comments may be shown as answers.

SessionState = SQL performance

4 Answers 230 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Jorge
Top achievements
Rank 1
Jorge asked on 06 Apr 2011, 06:19 PM
I'm moving session state to "sql mode" but I've some problems with performance in asp.net.

When using "inproc mode" the ReportViewer shows the report after 2.8 secs, while in "sql mode" it takes more de 30 secs. Is this normal?
My report has only one page with some images.

Thanks!

4 Answers, 1 is accepted

Sort by
0
Chavdar
Telerik team
answered on 07 Apr 2011, 12:11 PM
Hello Jorge,

It is quite normal to have a performance penalty when switching from InProc to an OutProc Session state. When objects are in the same process they are accessed almost instantly while when they are in another process/storage the data is marshaled back and forth using complex calls. Sometimes depending on the size and complexity of data the time may increase significantly. More information about the different session state modes and their performance you can find in the following links:


One tip for improving performance when using Telerik Reporting in an out-proc session state is to feed it with data by using the Reporting Data Source components.

You can also read the Design Considerations for Out-Proc Session State KB article.

Kind regards,
Chavdar
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0
Jorge
Top achievements
Rank 1
answered on 15 Apr 2011, 01:56 PM
OK. I've worked in a solution that solves the SQL-Session + Telerik problem.

PROBLEM
The original situation is this: Telerik Reporting generates a 15+ Mb object (for my report) that is stored in the asp.net session object. Each time I refresh the page, a new 15 Mb object is created, so if i refresh the page 4 times in a few seconds, for example, the session object grows to 60 Mb.
This causes a BIG performance problem: the first report load in 10 segs, the second in 20 segs... and so on. This is not a Telerik bug: it's the awful ASP.NET SQL-Server default implementation. Asp.net LOADS EVERYTHING from the database, and SAVES EVERYTHING when the page generation is done. While this is faster for handling small variables in the session object, it's useless if you are Telerik Reporting, of other components.

SOLUTION
Implement a custom session provider, that has a lazy loader so it only loads the necessary variables from session.
Using this solution I reduced loading time to 5 seconds each time the page loads (solving the refresh problem). Also It implements a "save only modified objects" mechanism, to reduce time, bandwidth, etc.
If anyone is interested in this solutions I'll post some code.

Cheers!
0
Moe Islam
Top achievements
Rank 1
answered on 29 Apr 2011, 04:22 AM
Jorge:

I am also having some issues with SQL State, my report viewer hangs and do not display any report, kindly post you custom session handle for  my help!

Regards
Moe
0
Jorge
Top achievements
Rank 1
answered on 29 Apr 2011, 01:54 PM
First of all: did you follow the Design Considerations for Out-Proc Session State  ? Specially using parameterless constructors and the "NeedDataSource" event?
Tags
General Discussions
Asked by
Jorge
Top achievements
Rank 1
Answers by
Chavdar
Telerik team
Jorge
Top achievements
Rank 1
Moe Islam
Top achievements
Rank 1
Share this question
or