Comparaison de la capture de données modifiées et du suivi des modifications
SQL Server 2008 introduit deux fonctionnalités de suivi qui permettent aux applications de déterminer les modifications de DML (opérations d'insertion, de mise à jour et de suppression) apportées aux tables utilisateur dans une base de données. Auparavant, des mécanismes de suivi personnalisés devaient être implémentés dans les applications. Ces mécanismes personnalisés exigeaient souvent l'utilisation de déclencheurs ou la modification du schéma de la table faisant l'objet d'un suivi. Ni la capture de données modifiées ni le suivi des modifications ne requiert la modification du schéma à la source ou l'utilisation de déclencheurs.
Capture de données modifiées
La capture de données modifiées fournit des informations de modification historiques pour une table utilisateur en capturant à la fois le fait que des modifications DML aient été apportées et les données effectivement modifiées. Les modifications sont capturées à l'aide d'un processus asynchrone qui lit le journal des transactions et n'a qu'un faible impact sur le système.
Comme indiqué dans l'illustration suivante, les modifications apportées aux tables utilisateur sont capturées dans des tables de modifications correspondantes. Ces tables de modifications fournissent une vue historique des modifications au fil du temps. Les fonctions de capture de données modifiées fournies par SQL Server autorisent une consommation facile et systématique des données modifiées.
Suivi des modifications
Le suivi des modifications capture le fait que des lignes d'une table ont été modifiées, mais ne capture pas les données modifiées. Cela permet aux applications de déterminer les lignes qui ont changé, les données de ligne les plus récentes étant obtenues directement à partir des tables utilisateur. Le suivi des modifications est par conséquent plus limité dans les questions historiques auxquelles il peut répondre, comparé à la capture de données modifiées. Toutefois, pour les applications qui ne requièrent pas d'informations historiques, la charge de stockage est largement inférieure puisque les données modifiées ne sont pas capturées. Un mécanisme de suivi synchrone est utilisé pour assurer le suivi des modifications. Ce mécanisme a été conçu pour imposer une charge minimale sur les opérations DML.
L'illustration suivante montre un scénario de synchronisation qui pourrait tirer parti du suivi des modifications. Dans ce scénario, une application requiert les informations suivantes : toutes les lignes de la table qui ont été modifiées depuis la dernière synchronisation de la table et uniquement les données de la ligne actuelle. Étant donné qu'un mécanisme synchrone est utilisé pour assurer le suivi des modifications, une application peut effectuer la synchronisation bidirectionnelle et détecter de manière fiable tout conflit pouvant survenir.
Différences de fonctionnalités entre la capture de données modifiées et le suivi des modifications
Le tableau suivant répertorie les différences de fonctionnalités entre la capture de données modifiées et le suivi des modifications. Le mécanisme de suivi de la capture de données modifiées implique une capture asynchrone des modifications à partir du journal des transactions afin que les modifications soient disponibles après l'opération DML. Dans le suivi des modifications, le mécanisme de suivi implique le suivi synchrone des modifications en parallèle avec les opérations DML, afin que les informations relatives aux modifications soient disponibles immédiatement.
Fonctionnalité |
Capture de données modifiées |
Suivi des modifications |
---|---|---|
Modifications suivies |
|
|
Modifications DML |
Oui |
Oui |
Informations suivies |
|
|
Données historiques |
Oui |
Non |
Si la colonne a été modifiée |
Oui |
Oui |
Type DML |
Oui |
Oui |