J'ai une application qui importe de gros volumes de données quotidiennement, plusieurs centaines de milliers d'enregistrements.
Les données proviennent de différentes sources. Les données sont lues à l'aide de C#, puis insérées en masse dans la base de données.
Ces données sont ensuite traitées:Gestion de grands volumes de données - procédures stockées ou jeux de données ou autres ...?
- tables différentes sont liées
- nouvelles tables sont générées données
- est corrigée en utilisant algorithmns complexes (tous les résultats de certains tableaux ont un total de zéro)
La plupart de ce traitement est effectué dans des procédures stockées.
Bien que certains du traitement complexe serait plus simple en C#, l'extraction des données dans un ensemble de données et sa réinjection ralentirait considérablement les choses.
Vous pouvez demander pourquoi je ne traite pas les données avant de l'insérer dans la base de données, mais je ne pense pas qu'il pratique à manipuler 100,000s d'enregistrements en mémoire, et les commandes SQLs définies en fonction lors de la création aider beaucoup de disques.
Cela va sans doute susciter la vieille question de l'utilisation des procédures stockées et leurs avantages et inconvénients. (Par exemple, comment testez-vous les procédures stockées?)
Ce que je voudrais en réponse, c'est votre expérience avec de gros volumes de données et comment vous avez résolu le problème.