Excusez le titre de ce post, mais je ne peux pas vraiment penser à un titre plus créatif.Problème théorique de grand volume, impossible d'utiliser la collection pour trier .NET
J'appelle un service Web de tiers où les auteurs commandent les résultats des transactions les plus récents. Le nombre total de transactions est supérieur à 100 000. Pour rendre les choses plus intéressantes, le service Web envoie des objets complexes représentant chaque transaction, donc si je demande 100 000 à la fois, un délai d'attente se produira. Les appels vers ce service Web doivent donc être groupés pour ne renvoyer que 1000 enregistrements à la fois. Cela signifie 100 appels individuels à ce service Web. Jusqu'à présent, tout est bon, sauf que les transactions doivent être traitées du plus ancien au plus récent, j'ai donc besoin d'un endroit pour contenir temporairement les identifiants de ces transactions, de sorte que plus tard, je puisse rappeler les ID dans le bon ordre (du plus ancien au plus récent) après les avoir triés.
Ce qui me manque dans cette solution est un SGBDR, je songe à utiliser un fichier texte pour stocker les valeurs.
Excuse la longue intro, si vous êtes encore éveillé ici sont les considérations:
(1)
- Si je stocke seulement les valeurs dans un fichier texte, je vais finir avec plus de 100 000 lignes dans le fichier texte dans le mauvais ordre, ce qui signifie que je dois mettre en place un moyen de lire le fichier de bas en haut
- Je ne suis pas sûr, mais il pourrait y avoir ajouter au début d'un fichier texte existant sans aucun des pénalités de performance, de cette façon une fois le fichier créé, je pourrais utiliser .net intégré pour lire le fichier de haut en bas.
- Je pourrais raccorder un pilote odbc de texte et peut-être utiliser un ordre SQL par clause, mais je n'ai jamais fait cela auparavant, et je ne veux pas ajouter d'autres étapes de déploiement à mon application.
- Peut-être que l'utilisation d'un fichier texte n'est pas le chemin à parcourir, peut-être qu'il existe une meilleure solution pour ce problème que je ne connais pas.
C'est une question d'architecture/logistique, toute aide serait appréciée, merci
Accepté, parce que vous avez battu Jon au tirage :) –