2010-11-05 36 views
2

Je dois stocker 2 valeurs (compteurs) pour mon application Web ASP.NET. Les compteurs grandissent toujours, ils ne devraient jamais retourner à 0. Donc une option serait de les enregistrer en DB, quelles autres options ai-je, parce que les stocker dans une table semble disproportionnée? La session n'est pas une option car les compteurs doivent survivre aux redémarrages de l'application.Stocke un compteur global dans DB? Quelle est une autre option?

Merci :-)

+4

Quel est le but des compteurs? Sachant cela nous aidera à donner une réponse qui correspond à vos besoins. – Oded

+0

Ces compteurs vont à un fichier qui est créé à partir de l'application web ... pour chaque objet (quelque chose de personnalisé que nous avons) qui est écrit dans le fichier, ils sont augmentés d'une certaine manière. Ce fichier exporté est lu par une application tierce du côté client. – grady

Répondre

1

stocker les comptes dans une table de DB sons parfaitement approprié ici.

Les autres options qui me viennent à l'esprit sont d'utiliser un fichier, qui ne serait pas très fiable, ou de la mémoire, en utilisant quelque chose comme memcache, qui ne survivrait pas à un redémarrage du système.

Ne vous préoccupez pas de l'utilisation d'une table DB. Il prendra à peine n'importe quel espace de stockage ou encourra n'importe quels frais généraux significatifs à moins qu'ils soient écrits à très fréquemment. Si c'est le cas, veuillez ajouter plus d'informations et nous pourrons peut-être proposer d'autres solutions.

-1

Enregistrez-les dans un fichier. Moyen le plus rapide.

+0

Donc, vous pensez que le fichier IO est toujours plus rapide que le réseau IO? Et l'accès multi-thread ne sera pas un problème? – Oded

+0

@Oded, je suis d'accord, dans les grandes applications avec beaucoup d'E/S, il est plus raisonnable de laisser toute la persistance à la base de données. Quand il s'agit de petites ou moyennes applications, un fichier est une alternative, parfois mieux. Après tout, il y a une grande différence entre l'envoi d'une commande et l'obtention d'un ensemble de résultats via le réseau, et la création de files d'attente pour un IO de fichier local. – AlexanderMP

1

Si ces compteurs sont rarement mis à jour et peuvent dépendre de la machine (vous n'êtes pas dans un cluster), j'utiliserais quelque chose de simple, comme l'écriture de leurs valeurs dans un fichier de paramètres. Gardez à l'esprit que vous devrez faire face à la multi-threading.

S'il y a beaucoup d'accès aux compteurs, stockez-les dans une base de données.