Hi,
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?
Thanks,
Ashley
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?
Thanks,
Ashley