2011-06-20 4 views
-1

Nous avons un outil de reporting qui saisit une grande quantité d'enregistrements. Parfois, il peut y avoir 1 million d'enregistrements. Nous avons stocké cela dans un datable. Je voulais savoir s'il y avait un meilleur objet pour stocker cela. Je devrais pouvoir agréger les données de diverses manières.Plus efficace qu'une datable

Mise à jour: Oui. Personnellement, je crois que cela ne devrait pas avoir autant de dossiers. Ce n'est pas la direction que je veux aller.

Aussi je suis en utilisant Oracle

Mise à jour de mise à jour

Désolé pour le retard, mais il y a toujours de mettre tire ici. Le principal problème était qu'ils manquaient de mémoire et d'erreurs de mémoire. Ils avaient des problèmes avec le datatable libérant de la mémoire et se liant aussi à un datagridview. Je suppose que ce que je cherchais était un objet plus léger qui ne prendrait pas autant de place. Après avoir réfléchi un peu plus, cela n'a vraiment aucun sens d'obtenir autant de données que diagonalbatman mentionné. En outre, si nous avons juste quelques personnes l'utilisent avec ces problèmes. Comment ça va à l'échelle. Malheureusement, j'ai un patron qui n'écoute pas et une équipe offshore qui est trop "oui monsieur". Ils sérialisent les données brutes (sous la forme d'un fichier XML) et libèrent les données brutes Datatable, ce qui selon moi n'est pas une bonne direction du tout.

@diagonalbatman - de curiosité, avez-vous un exemple de ce

+2

Avez-vous effectué des tests pour déterminer où sont vos goulets d'étranglement? –

+0

Je ne suis pas sûr si cette question est responsable dans son état actuel. S'il vous plaît fournir beaucoup plus de détails. Les données sont-elles liées à d'autres données que vous avez stockées? etc etc –

+0

avez-vous un problème avec le datatable? qu'essayez-vous de surmonter? Plus de détails nous aideront à mieux vous aider. – Bueller

Répondre

2

Pourquoi avez-vous besoin de prélever 1 Milion enregistrements dans votre application? Vous ne pouvez pas effectuer la consolidation/l'agrégation de vos rapports sur la base de données? Cela permettrait de mieux utiliser les ressources de la base de données (après tout, c'est ce que le RDBMS est conçu pour faire), alors vous pouvez vous concentrer sur l'utilisation de petits ensembles consolidés.

+0

Je suis d'accord avec cela, mais la direction dans laquelle ils veulent que je me rende est d'avoir les données disponibles. – H20rider

+0

C'est bien, mais pouvez-vous concevoir l'application pour seulement "obtenir" les données quand vous en avez besoin? – diagonalbatman

+0

Yah. Se mettre d'accord. Il est ridicule de penser que l'utilisateur aurait besoin de beaucoup de données. – H20rider

1

Je vous recommande d'essayer plusieurs options à vérifier, en particulier à la lumière de votre capacité à agréger les données de diverses manières.

1) Peut-il être agrégé par des requêtes appropriées du côté des données, c'est probablement la meilleure solution. 2) si vous utilisez des POCOs, LINQ améliore votre mémoire et vos performances actuelles. LINQ vous permet-il d'effectuer l'agrégation dont vous avez besoin?

Mesurez les caractéristiques qui vous intéressent et essayez différentes options.

1

Ce que vous voulez, ce sont des cubes de données. Selon le type de base de données que vous avez, vous devriez envisager de construire des cubes.