Compartir a través de


Información general sobre el seguimiento de cambios

SQL Server 2008 introduce el seguimiento de cambios, una solución ligera que proporciona un mecanismo de seguimiento de cambios eficaz para las aplicaciones. Normalmente, para permitir que las aplicaciones consulten los cambios de los datos en una base de datos y tener acceso a la información relacionada con los mismos, los programadores de aplicaciones tenían que implementar mecanismos personalizados de seguimiento de cambios. Crear estos mecanismos normalmente implica mucho trabajo y, frecuentemente, conlleva el uso de una combinación de desencadenadores, columnas timestamp, tablas nuevas para almacenar información de seguimiento, y procesos de limpieza personalizados.

Los diferentes tipos de aplicaciones tienen requisitos distintos en cuanto a la cantidad de información que necesitan sobre los cambios. Las aplicaciones pueden utilizar el seguimiento de cambios para responder a las preguntas siguientes sobre las modificaciones que se han realizado en una tabla de usuario:

  • ¿Qué filas han cambiado para una tabla de usuario?

    • Sólo se requiere el hecho de que una fila haya cambiado, no cuántas veces cambió o los valores de cualquier cambio intermedio.

    • Los datos más recientes se pueden obtener directamente de la tabla de la que se realiza el seguimiento.

  • ¿Ha cambiado una fila?

    • El hecho de que una fila haya cambiado y la información sobre el cambio deben estar disponibles y grabarse en el momento en que el cambio se realice en la misma transacción.

[!NOTA]

Si una aplicación requiere información sobre todas las modificaciones realizadas y los valores intermedios de los datos modificados, podría ser adecuado utilizar la detección de datos modificados en lugar del seguimiento de los cambios. Para obtener más información, vea Comparar la captura de datos modificados y el seguimiento de cambios y Captura de datos modificados.

Aplicaciones de sincronización unidireccionales y bidireccionales

Las aplicaciones que tienen que sincronizar los datos con una instancia de SQL Server Database Engine (Motor de base de datos de SQL Server) deben poder consultar los cambios. El seguimiento de cambios se puede utilizar como base para las aplicaciones de sincronización unidireccionales y bidireccionales.

Aplicaciones de sincronización unidireccionales

Las aplicaciones de sincronización unidireccionales, como una aplicación de almacenamiento en caché de cliente o de capa media, pueden ser generadas de modo que usen el seguimiento de cambios. Como se muestra en la ilustración siguiente, una aplicación de almacenamiento en caché requiere que los datos se almacenen en Database Engine (Motor de base de datos) y también que se almacenen en memoria caché en otros almacenes de datos. La aplicación debe poder mantener la caché actualizada con cualquier cambio que se realice en las tablas de base de datos. No hay ningún cambio que devolver a Database Engine (Motor de base de datos).

Muestra aplicaciones de sincronización unidireccionales

Aplicaciones de sincronización bidireccionales

Las aplicaciones de sincronización bidireccionales también pueden generarse para usar el seguimiento de cambios. En este escenario, los datos de una instancia de Database Engine (Motor de base de datos) se sincronizan con uno o varios almacenes de datos. Los datos de esos almacenes pueden actualizarse y los cambios se deben sincronizar de nuevo con Database Engine (Motor de base de datos).

Muestra aplicaciones de sincronización bidireccionales

Un buen ejemplo de aplicación de sincronización bidireccional es aquella que se conecta ocasionalmente. En este tipo de aplicación, una aplicación cliente consulta y actualiza un almacén local. Cuando se disponga de una conexión entre un cliente y un servidor, la aplicación se sincronizará con un servidor y los datos que hayan cambiado circularán en ambas direcciones.

Las aplicaciones de sincronización bidireccionales deben ser capaces de detectar los conflictos. Se produciría un conflicto si se cambiaran los mismos datos en ambos almacenes de datos en el período entre sincronizaciones. Gracias a la capacidad para detectar conflictos, una aplicación puede asegurarse de que los cambios no se pierden.

Cómo funciona el seguimiento de cambios

Para configurar el seguimiento de cambios, puede utilizar instrucciones de DDL o SQL Server Management Studio. Para obtener más información, vea Configuración y administración del seguimiento de cambios. Para poder realizar el seguimiento de los cambios, el seguimiento de cambios debe estar previamente habilitado para la base de datos y, a continuación, debe estar habilitado para las tablas de esa base de datos que desee someter a seguimiento. No es necesario cambiar la definición de tabla y no se crean desencadenadores.

Una vez configurado el seguimiento de cambios para una tabla, cualquier instrucción DML que afecte a las filas en la tabla conllevará el registro de la información de seguimiento de cambios pertinente para cada fila modificada. Para consultar las filas que han cambiado y obtener información sobre los cambios, puede utilizar las funciones de seguimiento de cambios.

Los valores de la columna de clave principal son la única información relativa a la tabla sometida a seguimiento que se registra con la información de los cambios. Estos valores identifican las filas que se han cambiado. Para obtener los datos más recientes de esas filas, una aplicación puede usar los valores de columna de clave principal para combinar la tabla de origen con la tabla sometida a seguimiento.

La información sobre el cambio que se realizó en cada fila también se puede obtener utilizando el seguimiento de cambios. Por ejemplo, el tipo de operación de DML que produjo el cambio (inserción, actualización o eliminación) o las columnas que se cambiaron como parte de una operación de actualización.