Il semble assez difficile de trouver des comparaisons entre les tables temporelles de la version système et les options plus anciennes, telles que les déclencheurs DB et CDC. Je n'ai actuellement pas le temps d'écrire un test étendu sur SQL Server 2016, alors je pensais que je leur demanderais ici.
Fondamentalement, l'avantage typique des déclencheurs est qu'elles sont plus faciles à gérer dans des environnements autonomes et en flushed/Townon, sont en temps réel pour être synchronisés et avoir accès à des données de session telles que l'ID utilisateur.
CDC d'autre part, tout en nécessitant un peu plus de gestion et être asynchrone, est beaucoup plus léger et se produit donc beaucoup mieux. Donc, s'il y a tout doute de tout ce que la bouteille causée par des déclencheurs pourrait devenir un problème, CDC sera fondamentalement la solution supérieure. Dans les exigences matérielles, il existe une condition d'espace supplémentaire négligeable par CDC en raison de l'utilisation de journaux et de tables d'audit CDC pour suivre les modifications.
La question : Comment les tables temporelles se comparent-elles aux deux ci-dessus? En termes de vitesse, de performances, d'utilisation de l'espace de stockage. Quand devrais-je utiliser des tables temporelles au lieu de déclencheurs ou de CDC? Quand devrais-je pas?
Je comprends que quelque chose de potentiellement complexe que les exigences commerciales et les limitations techniques de la vérification de la DB n'auront pas une réponse facile, car elle dépend en grande partie des exigences et de la portée du projet. Mais n'importe quoi pour perdre plus de lumière sur les questions ci-dessus serait apprécié. Merci!
Cela dépend de votre cas de rentricité, des tables temporelles et de la capture de données de modification offre différentes fonctionnalités.
Les tables temporelles sont utilisées pour fournir une version de votre table à un moment donné. Un cas d'utilisation peut être une dimension changeante lentement où vous souhaitez suivre les modifications des attributs de dimension et les signaler à partir de tout moment.
Modifier la capture de données peut être utilisée sur une table OLTP, pour vous permettre de faciliter facilement l'exportation vers un marché de données. Il enregistre toutes les modifications à une table séparée. Vous pouvez donc facilement afficher les lignes modifiées depuis votre dernier point de LSN Exporter.