Welcome to MSDN Blogs Sign in | Join | Help

Esecuele Sin Fronteras

SQL Server, Reporting Services y Biztalk Server

News

  • Locations of visitors to this page Todos los mensajes publicados en este blog son proporcionados "como están" sin garantías de ninguna clase, y no otorgan ningún derecho. Scripts de ejemplo eventualmente publicados en este blog están sujetos a las condiciones especificadas en http://www.microsoft.com/info/cpyright.htm. Disclaimer: All postings are provided "AS IS" with no warranties, and confer no rights. This weblog does not represent the thoughts, intentions, plans or strategies of Microsoft. Because a weblog is intended to provide a semi-permanent point-in-time snapshot, you should not consider out of date posts to reflect current thoughts and opinions.
¿Por qué he reducido el registro de datos históricos y mi base de datos de distribución ha empezado a crecer?

 

 Hoy toca replicación. Vamos a tratar el efecto de un cambio aparentemente inocuo en el registro histórico del agente de distribución y sus posibles consecuencias.

El perfil del agente de distribución, entre otros parámetros, tiene uno llamado: HistoryVerboseLevel. Este parámetro según los books on line: “Especifica la cantidad de historial registrado durante una operación de la distribución. Puede minimizar el efecto sobre el rendimiento del registro del historial seleccionando 1.”  (http://msdn.microsoft.com/es-es/library/ms147328.aspx)

Tal y como indican los books on line, para mejorar el rendimiento, se recomienda un valor 1, ya que un valor 0 puede tener efectos secundarios, en particular el crecimiento de la base de datos de distribución.

Este comportamiento puede parecer extraño, para entenderlo veamos primero cuál es el proceso de reciclaje esperado en la base de datos de distribución:

En la base de datos de distribución se guardan las transacciones de la base de datos publicada, ¿durante cuánto tiempo? Hasta que todos los subscriptores las han recibido, con un tiempo máximo del período de retención. Pasado el período de retención, serán eliminadas independientemente de si las han recibido los subscriptores o no, precisamente para evitar el crecimiento sin límite de la base de datos de distribución. El período de retención es configurable, y por defecto son 72 horas.

El encargado de borrar las transacciones no necesarias en la base de datos de distribución es el trabajo “Limpieza de la distribución” (Distribution clean up), y cada vez que se ejecuta:  

-Si hay subscripciones anónimas, no tiene información acerca de qué subscripciones han recibido las transacciones, por lo tanto mantiene todas las transacciones que se encuentran dentro del período de retención.

-Si las subscripciones no son anónimas, si todos los subscriptores han marcado una transacción como recibida, el trabajo de limpieza las eliminará aunque estén dentro del  período de retención.

Cuanto menos transacciones tengamos en la base de datos de distribución, mejor será el rendimiento del agente.

¿Cuál es el efecto de configurar un valor 0 para el HistoryVerboseLevel?  De nuevo, según los books on line: Los registros del historial no se registran en la base de datos de distribución”. La implicación es que en la base de datos de distribución no hay información sobre qué transacciones ha recibido cada subscriptor.  Estaríamos en el mismo caso que trabajando con subscripciones anónimas. Por lo tanto la base de datos de distribución es mayor de lo necesario, y empeora el rendimiento.

Otra funcionalidad que necesita el registro histórico en distribución es el monitor de réplica, y la consecuencia de utilizar el valor 0 para HistoryVerboseLevel, es que las transacciones aparecerán como no distribuidas, y la subscripción como no actualizada.

Como resumen, no se recomienda tener un valor 0 para el parámetro HistoryVerboseLevel.

Un saludo.

Raquel Vicente de la Rosa

Ingeniero de Soporte de SQL Server

Posted: Tuesday, May 26, 2009 12:07 PM by EsecueleSinFronteras

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker