Jorge
Posted on Jul 1, 2009
(permalink)
I have a 100.000+ record table and I need to report just one record.
I noticed that If I use the report filter with "Fields.id_field = ...." the report seems too get all data from the server, and then filter the desired record. If I filter the query with "WHERE id_field =..." the reports runs very fast.
Is this normal? If I should use database filtering (instead of report filtering): where should I set the query parameters (@id_field)?
Thanks in advance!
Reply
Answer
Telerik Admin
Posted on Jul 2, 2009
(permalink)
Hello Jorge,
As described in the
Filtering Report Data topic, the report filters works on the reporting engine side and does not filter the data on the database server. That said, if you need exactly 1 record off 100,000 it is much better to filter the data on the data source before passing it to the reporting engine.
Currently Telerik Reporting depends on external data source objects and does not handle the data itself. Our short term plans include some improvements in this direction and I hope that once we start handling the data on our side, we can move the data filtering to the data source (of course if the data source can support such type of operations, like the database servers).
Greetings,
Svetoslav
the Telerik team
Reply
Jorge
Posted on Jul 3, 2009
(permalink)
Telerik Reporting's filtering is extremely useful as one can do everything without code, but it will be great when this filtering is "translated" to database filtering to optimize data fetching.
Cheers!
Reply