J'ai une question sur la conception et la performance des tables. J'ai un certain nombre de machines analytiques qui produisent des quantités variables de données (qui ont été stockées dans des fichiers texte jusqu'à présent via les programmes DOS qui exécutent les machines). J'ai décidé de moderniser et de créer une nouvelle base de données pour stocker tous les résultats de la machine.Performance des colonnes supplémentaires par rapport aux lignes supplémentaires
J'ai créé des tables séparées pour stocker les résultats par type par ex. tous les résultats de la machine d'équilibrage sont stockés dans les résultats de la balance tableau, etc.
J'ai un format de tableau commun de résultats pour chaque machine qui est la suivante:
ClientRequestID PK
SampleNumber PK
MeasureDtTm
Operator
AnalyteName
UnitOfMeasure
Value
Un ClientRequest typique pourrait avoir 50 échantillons qui ont besoin testé par différentes machines. Chaque machine enregistre seulement 1 ligne par échantillon, donc il y a environ 50 lignes par table associées à une demande client donnée.
Ceci est bien pour toutes les machines sauf une!
Il mesure 20-30 analytes par échantillon (et les recrache simplement dans une longue rangée), tandis que toutes les autres machines, je mesure seulement 1 analyte par RequestID/SampleNumber. Si je m'en tiens à ce format, cette machine générera plus d'une miliion de lignes par an, car chaque échantillon peut avoir jusqu'à 30 mesures. Mes autres tables ne se développeront qu'à raison de 3000 à 5000 lignes par an.
Ainsi, après tout cela, ma question est la suivante:
Suis-je mieux coller au format commun pour cette table, et ont des charges seau de lignes, ou est-il préférable d'ajouter simplement des colonnes supplémentaires pour représenter chaque Analyte, de sorte qu'il ne générerait qu'une seule ligne par échantillon (comme les autres tables). La machine ne peut mesurer qu'un maximum de 30 analytes (et 250k $ par machine, je n'en gagnerai pas une de ma vie).
Tout ce qui m'inquiète, c'est de rapporter les performances et l'édition en ligne. Dans les deux cas, le PK: RequestID
et SampleNumber
restent les mêmes, donc je suppose que c'est juste une question de ce qui chargerait plus rapidement. Je sais que l'approche par colonnes multiples est considérée comme déplorable du point de vue de la conception, mais serait-elle plus performante dans ce cas?
BTW la base de données est MS Jet/Access 2010
Toute aide serait grandement appréciée!
"BTW la base de données est MS Jet/Access 2010" C'est 80% de votre problème. Utilisez presque n'importe quelle base de données ODBC et vous serez plus heureux avec les performances et l'utilisation de l'espace. –