Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2018, 07:20
Avatar de Huasi
Huasi
 
Fecha de Ingreso: mayo-2007
Mensajes: 83
Antigüedad: 17 años, 6 meses
Puntos: 2
Redundancia: Job vs Trigger vs SP

Estimados, como andan.
Estoy realizando un trabajo de reingeniería de base de datos en SQL Server.
El proceso consiste en desarmar grandes tablas y generar tablas mas pequeñas donde se reparta la misma información.
La necesidad surge a raíz del crecimiento desenfrenado del negocio.
Trabajo con unas 200 bases de datos que poseen la misma estructura, se le asigna una a cada cliente. Hay 3 tablas que son críticas y generan aproximadamente 300000 registros diarios cada una.
Para que se den una idea, el count para una de ellas me devuelve 178098907 registros y tiene almacenada información de dos años hacia atrás. Los datos mas antiguos están backupeados y se montan bajo demandas puntuales.

De manera resumida, tenemos Tabla1 que posee 200 millones de registros y genera 300000 registros diarios.
Entre sus columnas hay una llamada categoría y maneja tres valores: A, B y C.
La primer parte consiste en generar Tabla1A, Tabla1B y Tabla1C.

Como todos los procesos del sistema apuntan a Tabla1, esta primer parte consiste solamente en alimentar cada una de las nuevas tablas generadas y más adelante distribuir las tareas del transaccional sobre las tablas nuevas.

Ya tengo el script para repartir los 200 millones de datos en las tres nuevas tablas.
La consulta que me trae por aquí es sobre los 300000 datos que se escriben a diario.
Es conveniente:
  • Generar un Job que se ejecute una vez al día cada madrugada, que lea los 300000 datos que se generaron y los escriba en las tablas nuevas
  • Modificar el SP que alimenta Tabla1 para que por cada escritura que se realiza haga la réplica en la correspondiente tabla nueva
  • Crear un Trigger for Insert que al momento que se realice una escritura en Tabla1 replique en la tabla nueva correspondiente

Por mi parte la opción del Job me parece la peor ya que voy a contar con los datos un día después, pero la ventaja que obtengo es que no haría mas pesado el transaccional.
Aguardo por sus consejos.

Saludos