Lector de datos
Sobre el acceso más rápido se llega a SQL es con el SqlDataReader.
perfil it
Vale la pena realmente perfiles donde su problema de rendimiento es. Usualmente, donde crees que el problema de rendimiento es, se ha demostrado que está totalmente mal después de haberlo perfilado.
Por ejemplo, podría ser:
- El tiempo de la consulta ... se necesita para ejecutar
- El tiempo ... la toma de datos para copiar todo el sitio limítrofe red/proceso
- El tiempo ... .Net tarda en cargar los datos en la memoria
- El tiempo ... el código necesario para hacer algo con él
de perfiles de cada uno de estos en Isola le dará una mejor idea de dónde está su cuello de botella.Para perfilar su código, hay una caché great article from Microsoft
que
Lo que hay que mirar para mejorar el rendimiento es trabajar si tiene que cargar todos los datos cada vez. ¿Se puede almacenar en caché la lista (o parte de ella)? Eche un vistazo al nuevo espacio de nombres System.Runtime.Caching.
reescritura como T-SQL
Si estás haciendo operaciones puramente de datos (como su pregunta sugiere), se podría reescribir el código que está utilizando los datos a ser T-SQL y ejecutar de forma nativa en SQL . Esto tiene el potencial de ser mucho más rápido, ya que trabajará directamente con los datos y no los cambiará.
Si su código tiene mucha lógica de procedimiento necesaria, puede intentar mezclar T-SQL con CLR Integration, ofreciéndole los beneficios de ambos mundos.
Esto se reduce a la complejidad (o más naturaleza de procedimiento) de su lógica.
Si todo lo demás falla
Si todas las áreas son óptimas (o lo más cerca), y su diseño es sin culpa. Ni siquiera entraría en la micro-optimización, solo me throw hardware at it.
¿Qué hardware? Pruebe el reliability and performance monitor para averiguar dónde está el cuello de la botella. Muy probablemente lugar para el problema que describe HDD o RAM.
No lo creo. –