Question

J'ai une application qui est prévue et obtenir des données d'une autre table de base de données et décharges dans ma table de base de données principales applications, le nombre d'enregistrements dans ce tableau augmente tous les jours et je suppose qu'il va croître tous les jours que ce sont des données d'événement transactions que les données occur.This est utilisé pour le traitement par l'application principale qui prend chaque enregistrement et effectue l'analyse nécessaire et marque chaque enregistrement en tant que traitement.

Quel genre de solution puis-je fournir pour que je puisse garder la taille de la base de données dans l'avenir?

Comment feriez-vous dans cette situation?

De mon observation de quelques applications d'entreprise, on fournit une option que l'utilisateur peut de plus de 60 ans le jour 'enregistrements d'archives, etc ... à un texte file.Well je pourrais fournir une option pour archiver les enregistrements traités dans un fichier texte et supprimer les enregistrements de la base de données, le fichier texte pourrait être importé plus tard si nécessaire? Est-ce une solution?

Était-ce utile?

La solution

Si vous avez besoin d'accéder à de temps en temps que les données plus anciennes puis la construction d'un processus d'archiver en texte puis charger retour de texte est probablement pas une bonne solution. Les disques durs ne coûtent pas cher.

Vous pouvez agréger les données plus anciennes. Par exemple, si les données de la transaction est maintenant au grain de milliseconde mais quand vous rapport sur les données plus vous obtenez par jour puis envisagez de regrouper les données à « tous les jours » comme processus d'archivage. Vous pourrez peut-être l'effondrement des centaines de milliers de lignes en quelques-unes pour chaque jour.

Voir également un bon schéma de partitionnement où vous pouvez conserver les transactions les plus récentes sur un ensemble de disques et les données archivées vers d'autres disques, nous l'espérons dans un processus où vous pouvez facilement ajouter de nouveaux disques et créer des tables à ces disques.

Autres conseils

Quel genre de besoins de reporting des données passées que votre entreprise a? Laissant tomber les données archivées dans un fichier texte est très bien, en supposant que vous avez pas besoin d'être en mesure de signaler au large de ces données à l'avenir. Cependant, après avoir dans un fichier texte signifie que vous devez avoir un processus manuel pour importer à la demande dans une base de données quand il est nécessaire.

Une meilleure option serait de transférer des données d'archives au large dans une base de données de l'entrepôt de données qui ne sont pas utilisées pour le traitement des transactions (OLTP), et au lieu est utilisé comme base d'une base de données de traitement analytique (OLAP). Lorsque vient le temps de faire rapport au large de ces données archivées, il est prêt à aller. Si vous êtes prudent sur la façon dont vous structurez les données dans cette base de données d'archives, il devrait être très facile d'agréger toutes les données dans un cube OLAP, ce qui rend le reporting à partir de ces données beaucoup plus rapide et plus souple.

Mais encore ... dépend si vous signalez hors des données ou non, et dans quelle mesure dans le temps que les rapports pourraient aller.

Il ne dépend de la façon dont l'analyse beaucoup se fera sur des données antérieures, mais il y a une façon de garder tout dans la base de données sans diminuer les performances de devenir un problème.

La solution qui vient à l'esprit est de partitionner les tables en question. Mon entreprise a une table de base de données qui contient des données cloisonnées par mois, chacune contenant environ 20 millions de lignes. Le partitionnement fait à l'aide de ces données beaucoup plus pratique que si elle était stockée dans une seule table. Maintenant, la seule contrainte réelle est l'espace disque, ce qui est un non-problème étant donné la façon dont il est pas cher ces jours-ci.

Je sais, cependant, que certaines bases de données ne prennent pas en charge le partitionnement. Si tel est le cas, je suppose que le stockage des données dans un fichier délimité serait une solution appropriée.

à mon humble avis, cela dépend de la façon dont est probable que l'utilisateur devra analyser les données antérieures. S'il est probable, il suffit de créer de bons index et de garder toutes les données dans votre base de données principale.

Si ce n'est pas alors laisser tomber à un TXT. Le temps où il arrive doit être configurable bien sûr.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top