Avoir une boîte Win 2003 avec MSSQL 2005 en cours d'exécution. Il y a une base de données qui est remplie chaque matin avec SalesOrder nouveau/modifié fait le jour précédent. La base de données comporte plusieurs tables: SalesOrder, SalesOrderItem, SalesOrderItemBom. Chacun avec une table Version correspondante (c'est-à-dire SalesOrderVersion, SalesOrderItemVersion, SalesOrderItemBomVersion) qui a exactement les mêmes champs mais avec 2 colonnes d'addition VersionStartDate, VersionEndDate. Les tables non-versionnées ont les dernières données.Méthode recommandée pour interroger plusieurs tables versionnées
De même, VersionStartDate fait partie du PK pour les tables de versions, par exemple: - SalesOrder a OrderID comme PK et SalesOrderItem a VersionStartDate, OrderID comme PK.
Un exemple simplifié de la façon dont la table version fonctionne:
SalesOrder
OrderID, Montant 1, 100 2, 200
SalesOrderVersion
VersionStartDate, OrderID , VersionEndDate, Montant 20090101 13 : 00: 00, 1, 20090103 08:00:00, 50 20090103 08:00:00, 1, 99991231 00:00:00, 100 20090101 09:00:00, 2, 20090105 15:00:00, 300 20090105 15:00:00, 2, 99991231 00:00:00, 200
chaque fois que l'une ligne dans SalesOrder est modifiée, la ligne courante VersionEndDate dans SalesOrderVersion est mis à jour et une nouvelle ligne est insérée dans SalesOrderVerion avec VersionEndDate 99991231
notes: Si un enregistrement dans SalesOrderItem a été changé, il ne résulte pas nécessairement un changement dans le dossier « parent » dans SalesOrder
ont été invités à faire un rapport montrant la tendance et par jour les augmentations des ventes. Au sommet de ma tête, je pensais à créer 3 tableaux instantanés pour SalesOrder, SalesOrderItem, SalesOrderItemBom, qui capturent les "dernières données" de la journée et construisent ainsi des snapshots incrémentaux pour montrer les tendances. En plus d'exiger plus d'espace disque, y at-il un inconvénient à cette méthode par rapport à l'exécution d'une procédure stockée qui rejoint les tables Version, car cela semble être une requête longue et coûteuse.
Des idées ou des recommandations?