Lecteur De Données
À propos de l'accès le plus rapide, vous obtiendrez de SQL est avec le SqlDataReader.
Profil
Ça vaut réellement le profilage où votre problème de performance. Généralement, lorsque vous pensez que le problème de performance, est avéré être tout à fait tort, après que vous avez profilé elle.
Cela pourrait être par exemple:
- Le temps... la requête à exécuter
- Le temps... les données nécessaires à la copie de l'ensemble du réseau/processus boundry
- Le temps... .Net prend pour charger les données dans la mémoire
- Le temps... votre code nécessaire pour faire quelque chose avec elle
Le profilage de chacun de ces éléments dans l'isolement pour vous donner une meilleure idée de l'endroit où votre goulet d'étranglement. Pour le profilage de votre code, il y a un grand article à partir de Microsoft
Cache
La chose à regarder pour améliorer les performances, c'est de savoir si vous avez besoin de charger toutes les données à chaque fois. La liste (ou une partie) être mis en cache? Regardez le nouveau Système.Moment de l'exécution.La mise en cache de l'espace de noms.
Réécrire comme en T-SQL
Si vous faites purement opérations sur les données (comme votre question le suggère), vous pouvez ré-écrire votre code en utilisant les données pour être en T-SQL et s'exécutent en mode natif sur SQL, cela a le potentiel d'être beaucoup plus rapide que vous allez travailler avec les données directement et de ne pas les déplacer sur.
Si votre code a beaucoup de nessecary logique procédurale vous essayez de mélanger T-SQL CLR Intégration de vous donner les avantages des deux mondes.
Beaucoup cela vient de la complexité (ou plus nature procédurale) de votre logique.
Si tout le reste échoue
Si toutes les zones sont optimales (ou au plus près), et de votre conception est sans faute. Je ne serais même pas entrer dans la micro-optimisation, je venais de jeter le matériel à elle.
Quel est le matériel? Essayez la fiabilité et analyseur de performances de trouver où le col de la bouteille est. Le plus probable de la place pour le problème que vous décrivez disque dur ou de la mémoire RAM.