Share via


Comparando a captura de dados de alterações e o controle de alterações

O SQL Server 2008 apresenta dois recursos de controle que permitem aos aplicativos determinar as alterações de DML (operações de inserção, atualização e exclusão) que foram feitos para as tabelas de usuários em um banco de dados. Antes que esses recursos ficassem disponíveis, os mecanismos de controle personalizados tinham que ser implementados nos aplicativos. Esses mecanismos personalizados freqüentemente exigiam alterações de esquema na tabela controlada ou o uso de gatilhos. Nem a captura de dados de alterações nem o controle de alterações requerem qualquer alteração de esquema na origem ou o uso de gatilhos.

Captura de dados de alterações

A captura de dados de alteração fornece informações de alteração de histórico para uma tabela de usuário, capturando o motivo pelo qual as alterações de DML foram feitas e os dados reais que foram alterados. As alterações são capturadas utilizando um processo assíncrono que lê o log de transação e tem um impacto pequeno no sistema.

Como mostrado na ilustração a seguir, as alterações feitas para tabelas de usuários são capturadas nas tabelas de alteração correspondentes. Essas tabelas de alteração fornecem uma exibição histórica das alterações com o passar do tempo. As funções da captura de dados de alterações que o SQL Server fornece habilita os dados de alteração a serem consumidos fácil e sistematicamente.

Ilustração conceitual do Change Data Capture

Controle de alterações

O controle de alteração captura o motivo pelo qual as linhas em uma tabela foram alteradas, mas não captura o que foi alterado. Isso permite que os aplicativos determinem as linhas que foram alteradas com os últimos dados de linha obtidos diretamente das tabelas de usuários. Então, o controle de alterações é mais limitado nas perguntas de histórico do que pode responder comparado à captura de dados de alterações. Entretanto, para aqueles aplicativos que não exigem informações de histórico, há menos sobrecarga de armazenamento pois os dados alterados não são capturados. Um mecanismo de controle síncrono é usado para controlar as alterações. Isso foi projetado para ter o mínimo de sobrecarga nas operações de DML.

A ilustração a seguir mostra um cenário de sincronização que se beneficiaria com o uso do controle de alterações. No cenário, um aplicativo requer as seguintes informações: todas as linhas na tabela que foram alteradas desde a última sincronização da tabela e apenas os dados da linha atual. Como um mecanismo síncrono é usado para controlar as alterações, um aplicativo pode executar a sincronização de duas vias e detectar de modo confiável qualquer conflito que possa ocorrer.

Ilustração conceitual do rastreamento de alteração

Diferenças de recurso entre captura de dados de alterações e controle de alterações

A tabela a seguir lista as diferenças de recursos entre a captura de dados de alterações e o controle de alterações. O mecanismo de controle na captura de dados de alteração envolve uma captura assíncrona de alterações no log de transação, de forma que as alterações fiquem disponíveis depois da operação de DML. No controle de alteração, o mecanismo de controle envolve o controle síncrono de alterações embutidas nas operações de DML de forma que as informações de alteração fiquem disponíveis imediatamente.

Recurso

Captura de dados de alterações

Controle de alterações

Alterações controladas

 

 

Alterações de DML

Sim

Sim

Informações controladas

 

 

Dados do histórico

Sim

Não

Se a coluna foi alterada

Sim

Sim

Tipo de DML

Sim

Sim

Consulte também

Conceitos

Outros recursos