2009-09-28 9 views
0

J'ai une table avec environ 10.000 enregistrements (plus les données détaillées dans 11 tableaux). Je veux afficher les données sous une forme navigable (1er, précédent & suivant, derniers boutons).beaucoup d'enregistrements: créer des objets de gestion 1 par 1 ou tous en même temps?

J'ai pensé à récupérer tous les enregistrements, en plaçant les données dans une collection d'objets métier et en liant le formulaire à la collection. En pensant à cela, il me vint à l'esprit que cela pourrait prendre un certain temps et pourrait entraîner beaucoup de mémoire utilisée ...

Alors peut-être que je devrais récupérer le premier enregistrement et obtenir le suivant sur demande? Qu'est-ce que tu penses?

Répondre

0

Si les données sont utilisées fréquemment, mais ne changent pas souvent, vous pouvez envisager de les mettre en cache au niveau de l'application. Si vous récupérez les données au niveau du formulaire, un compromis probablement bon entre la vitesse et la consommation de mémoire serait d'obtenir par exemple. 11 enregistrements (actuel, 5 précédent et 5 suivant), et si l'utilisateur dépasse les enregistrements récupérés, obtenir les 5 suivants, etc.

1

Si vous n'utilisez pas un OR/M comme nHibernate ou iBatis, laissez-moi suggère que maintenant. J'utilise nHibernate - mais j'entends beaucoup de choses sur iBatis. Ils ont un chargement par lots et paresseux intégré et configurable. De plus, la prochaine fois qu'une telle situation survient, vous disposerez de cette fonctionnalité en quelques minutes grâce à une couche d'accès aux données flexible préétablie.

Si vous n'allez pas suivre la voie d'un OR/M, je vous suggérerais d'aller chercher un par un jusqu'à ce que les performances deviennent un problème - pourquoi compliquer les choses inutilement dès le départ? Si les performances deviennent problématiques, envisagez l'extraction par lots et la mise en cache.

+0

tout le monde suggère de le faire. J'ai esquivé de le faire tout le temps parce que cela signifie jeter des mois de travail ... –

+0

Compréhensible. Une chose que j'ai apprise est l'évaluation du retour sur investissement quand on considère s'il faut jeter du travail ou s'y accrocher. Parfois, jeter des «mois» de travail permet d'économiser de nombreux mois à long terme de développement et de maintenance. Une chose à considérer: un futur «nouveau développeur» sera-t-il plus enclin à connaître ou à apprendre une couche OR/M bien documentée et largement adoptée ou votre couche d'accès aux données personnalisée? Bonne chance avec vos considérations. –

+0

J'ai pris une décision et jeté mes affaires =) –

Questions connexes