As you have noticed correctly, every time the report is previewed, paged or exported through the viewer it is processed and rendered from scratch. Obviously, this is not the best way to do this but we currently do not have any caching mechanism. Every report instantiation will cache the whole report in the server's memory (because we do not know at design time how many items will fit on a single page) - this is of course per session. This cache is not only data, but the whole report being processed - and every report item has numerous properties.
Our current goal is to cover some reporting functionality we still lack and then we will move to the performance optimizations and productivity. Anyway, this task is already in our TODO list and we hope we will soon have the chance to work on it.
purpose is to transform information into "knowledge" and rendering
thousands of pages is not that kind of transformation, rather it is a
huge document that one might (or not) go through. So if your main goal is to show this data for web presentation only, we can suggest a grid control instead, moreover our RadGrid control
exposes API for pdf, csv, word, excel exporting.
the Telerik team