Mon exemple simplifié et artificiel est le suivant: -Quelle est la meilleure façon de stocker des données d'historique dans SQL Server 2005/2008?
Disons que je veux mesurer et stocker la température (et d'autres valeurs) de toutes les villes du monde sur une base quotidienne. Je suis à la recherche d'un moyen optimal de stocker les données de sorte qu'il soit aussi facile d'obtenir la température actuelle dans toutes les villes, que d'avoir historiquement la totalité de la température dans une ville.
C'est un problème assez facile à résoudre, mais je cherche la meilleure solution.
Les 2 principales options que je peux penser sont les suivantes: -
Option 1 - magasins même table les enregistrements actuels et historiques
tous les magasins en cours et enregistre archives dans la même table.
à savoir
CREATE TABLE [dbo].[WeatherMeasurement](
MeasurementID [int] Identity(1,1) NOT Null,
TownID [int] Not Null,
Temp [int] NOT Null,
Date [datetime] NOT Null,
)
Cela garderait tout simple, mais quelle serait la question la plus efficace pour obtenir une liste des villes et il y a la température actuelle? Est-ce que cette échelle une fois que la table a des millions de lignes? Y at-il quelque chose à gagner en ayant une sorte de drapeau IsCurrent dans la table?
Option 2 - Conservez tous les documents d'archives dans une table séparée
Il y aurait une table pour stocker les mesures en direct actuelles dans
CREATE TABLE [dbo].[WeatherMeasurement](
MeasurementID [int] Identity(1,1) NOT Null,
TownID [int] Not Null,
Temp [int] NOT Null,
Date [datetime] NOT Null,
)
Et une table pour stocker Date d'archivage historique (inséré par un peut-être déclencher)
CREATE TABLE [dbo].[WeatherMeasurementHistory](
MeasurementID [int] Identity(1,1) NOT Null,
TownID [int] Not Null,
Temp [int] NOT Null,
Date [datetime] NOT Null,
)
Cela a les avantages de maintenir les principales données actuelles maigre et très efficace pour interroger, au détriment de rendre le schéma plus complexes et en insérant des données plus coûteuses.
Quelle est la meilleure option? Y a-t-il de meilleures options que je n'ai pas mentionnées? REMARQUE: J'ai simplifié le schéma pour mieux cibler ma question, mais supposons qu'il y aura beaucoup de données insérées chaque jour (100 000 enregistrements) et que les données sont à jour pendant une journée. Les données actuelles sont tout aussi susceptibles d'être interrogées que l'historique.
Prenez vos deux options et répondez-y afin que nous puissions voter –