2010-12-06 5 views
10

He leído que habilitar la Captura de Datos de Cambio obviamente tiene un impacto en el rendimiento de la base de datos. Esta pérdida de rendimiento solo afectaría a las tablas que tienen CDC habilitado o afectaría todas las acciones en la base de datos¿La pérdida de rendimiento de la captura de datos de cambio está restringida a las tablas habilitadas por CDC?

En mi situación, estoy utilizando SSIS y tengo una gran cantidad de datos que entran y salen de una base de datos provisional. También tengo algunas tablas de búsqueda en el sistema que se usan para las transformaciones. Espero utilizar CDC como un medio para auditar los cambios a estas tablas de referencia solamente (no a los datos importados). Las principales consultas que realizo como parte del ETL acceden a estas tablas de referencia pero no las modifico, así que estoy tratando de averiguar si todavía habrá un golpe de rendimiento notable.

Gracias

Respuesta

25

La respuesta a esa pregunta sería sí y no.

No, porque

Cuando una tabla está habilitado para la captura de datos modificados, una instancia de captura asociado se crea para apoyar la difusión de los datos de cambio en la tabla de origen. La instancia de captura consiste en una tabla de cambios y hasta dos funciones de consulta.

Las tablas sin seguimiento no parecen estar involucradas en el seguimiento de datos.

Sí, porque

La fuente de datos de cambio para el cambio captura de datos es el registro de transacciones de SQL Server . Como inserciones, actualizaciones, y eliminaciones se aplican a las tablas de origen rastreadas , las entradas que describen esos cambios se agregan al registro. El registro sirve como entrada para el proceso de captura de captura de datos . Este lee el registro y agrega información sobre los cambios realizados en la tabla de cambios asociada a la tabla rastreada .

Como la fuente de cambios provienen de registro de transacciones, la difusión de los cambios requiere las instancias de captura para leer e interpretar el registro de transacciones (aclaración: mi interpretación de las cosas). Simplemente habilitar CDC tiene un impacto en el rendimiento de toda su base de datos.

Recomendaciones

almacenamiento:

  • Al planificar el cambio de arquitectura de captura de datos, tomar un aumento significativo en el tamaño del registro y registrar el volumen de operaciones de E/S en cuenta.
  • Considere la posibilidad de especificar un grupo de archivos en sys.sp_cdc_enable_table.
  • Considere cambiar el grupo de archivos predeterminado para la base de datos antes de ejecutar sys.sp_cdc_enble_db para cambiar los metadatos de captura de datos y especialmente cdc.lsn_time_mappings se encuentran en un grupo de archivos diferente de PRIMARY.

comportamiento de carga de trabajo:

  • Trate de evitar los escenarios en una fila, es necesario actualizar inmediatamente después de inserción.
  • Trate de evitar el uso de la captura de datos modificados para capturar los cambios en las tablas que tienen frecuentes transacciones de actualización grandes.

Cambiar los parámetros de captura de datos:

  • reduzcan siempre la lista de columnas capturadas por captura de datos modificados a sólo las columnas que realmente necesita para realizar un seguimiento.
  • Si no necesita soporte para cambios netos, configure @ en 0.
  • Use para ver si la captura de datos modificados puede mantenerse al día con su carga de trabajo.
  • Si la captura de datos modificados no puede mantenerse al día con su carga de trabajo, modifique los parámetros del trabajo de escaneo y reinicie el trabajo de escaneo.

Conclusión
Si el servidor no tiene actualmente ningún problema en correr con su carga, dudo mucho que dará cuenta de los problemas de rendimiento que permitan a los CDC para infrecuentes cambiado tablas.

Fuentes

+1

muy bien explained..must merece una upvote ... –

Cuestiones relacionadas