Su problema principal es que la consulta de la base de datos debe ejecutarse más rápido. Una vez que tenga una solución para eso, puede ajustar su código en consecuencia.
Lo primero que miraría es optimizar los índices de su base de datos para aumentar el rendimiento de su consulta. Si puede, use SQL Profiler y Index Tuning Wizard (no creo que estas herramientas estén disponibles en la edición Express de SQL Server). Tenga en cuenta que los índices nuevos también pueden causar una degradación del rendimiento con inserciones, por lo que si su base de datos necesita admitir un alto volumen de transacciones, debe tener cuidado con el uso de este enfoque.
Si puede encontrar la manera de aumentar el rendimiento de su consulta dividiendo la consulta en partes y agregando los resultados con el código de procedimiento, entonces tendría sentido pasar a un ObjectDataSource. Esto le permitirá la máxima flexibilidad en la forma en que se adquieren los datos.
Como punto de partida, haría un prototipo de su consulta y/o partes de su consulta en un editor de SQL para que pueda enfocarse solo en la optimización de consultas antes de tomar decisiones sobre cómo cambiará su código ASP.NET.
No puedo comentar más sobre exactamente cómo optimizar su extracción de datos sin mirar los detalles de su esquema y las consultas que está utilizando. Pero esto debería llevarlo en la dirección correcta.
1) ¿Qué tan grande (filas y columnas) es el conjunto de datos devuelto ?, y 2) nos muestra la declaración de SQL. – RBarryYoung
si te gusta utilizar ** LINQ ** podrás hacer el cálculo en tu código ** C# ** fácilmente –
No quiero realmente publicar el SQL aquí, pero intentaré cambiarlo para que sea más genérico ... puede tener en función de la búsqueda de hasta 10.000 filas y tiene al menos 30 columnas – user1186144