RadSearchBox for large data sets

3 posts, 0 answers
  1. Ashley
    Ashley avatar
    1 posts
    Member since:
    Aug 2013

    Posted 02 Oct 2013 Link to this post


    I'm building a search screen for customers against an existing database using an Entity Data Source as the DataSource. There are 100,000 records and the performance of the RadSearchBox doesn't seem to be built to scale.

    If I select the option Filter="StartsWith" I would expect that the search predicate would be pushed through entity framework and result in a SQL LIKE clause being generated. Instead when I run SQL Profilers I see every search running against the database without a WHERE clause and the result is a scan of the 100,000 rows with every auto-complete request.

    It seems the best I can do to improve the performance of this is put an index on the field I'm searching to act as a vertical partition, but this solution doesn't scale well as over 95% of the time is still taken up by the web server scanning the entire data set looking for matching results.

    Is there a better way to use the RadSearchBox when searching a data set of this size?


  2. Bozhidar
    Bozhidar avatar
    1146 posts

    Posted 02 Oct 2013 Link to this post

    Hello Ashley,

    This is actually on our ToDo list for the ServicePack that follows the upcoming official 2013 Q3 release - automatically adding the filtering to the Entity or LINQ DataSource.

    In the meantime you can utilize the OnDataSourceSelect event, which fires before each request to the datasource and add the filter manually.

    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
  3. Rob Conley
    Rob Conley avatar
    47 posts
    Member since:
    Sep 2012

    Posted 02 Oct 2013 Link to this post

    Thanks for your question Ashley.

    I completey assumed that the filter would be pushed through and wondered what was going on. If this performance concern isn't documented, it should be.
Back to Top