Saltar al contenido

¿Existe alguna relevancia para “FILA POR LOTE” Y “TAMAÑO MÁXIMO DE INSERTAR COMPROMISO” EN LOS PAQUETES SSIS?

Solución:

Estos parámetros se refieren únicamente al destino DFT OLE DB con modo de carga rápida. Destino OLE DB en carga rápida emite un insert bulk mando. Estos dos parámetros lo controlan de la siguiente manera:

  • Tamaño máximo de confirmación de inserción – controla la cantidad de datos que se insertan en un solo lote. Por lo tanto, si tiene MICS configurado en 5000 y tiene 9000 filas y encuentra un error en los primeros 5000 resultados, se revertirá el lote completo de 5000. MISC equivale al argumento BATCHSIZE en el comando BULK INSERT transact-sql.
  • Filas por lote – simplemente una pista para el optimizador de consultas. El valor de esto debe establecerse en el número de filas esperado real. RPB equivale al argumento ROWS_PER_BATCH del comando BULK INSERT transact-sql.
    Especificar un valor para MICS tendrá algunos efectos. Cada lote se copia en el registro de transacciones, lo que hará que crezca rápidamente, pero ofrece la posibilidad de realizar una copia de seguridad de ese registro de transacciones después de cada lote. Además, tener un lote grande afectará negativamente la memoria si tiene índices en la tabla de destino, y si no está usando el bloqueo de la tabla, es posible que tenga más bloqueos en curso.

BULK INSERT (Transact-SQL): artículo de MS sobre este comando.

DefaultBuffermaxsize y DefaultBuffermaxrows controla la gestión del búfer de RAM dentro de la propia DFT y no interfiere con las opciones mencionadas anteriormente.

Filas por lote – El valor predeterminado para esta configuración es -1, que especifica que todas las filas entrantes se tratarán como un solo lote. Puede cambiar este comportamiento predeterminado y dividir todas las filas entrantes en varios lotes. El valor permitido es solo un entero positivo que especifica el número máximo de filas en un lote.

Tamaño máximo de confirmación de inserción – El valor predeterminado para esta configuración es ‘2147483647’ (el valor más grande para el tipo de entero de 4 bytes) que especifica que todas las filas entrantes se confirmarán una vez que se completen con éxito. Puede especificar un valor positivo para esta configuración para indicar que se realizará la confirmación para ese número de registros. Quizás se esté preguntando, cambiar el valor predeterminado para esta configuración supondrá una sobrecarga para que el motor de flujo de datos se confirme varias veces. Sí, eso es cierto, pero al mismo tiempo liberará la presión sobre el registro de transacciones y tempdb para crecer tremendamente específicamente durante las transferencias de datos de gran volumen.

Es muy importante comprender las dos configuraciones anteriores para mejorar el rendimiento de tempdb y el registro de transacciones. Por ejemplo, si deja ‘Tamaño máximo de confirmación de inserción’ en su valor predeterminado, el registro de transacciones y tempdb seguirán creciendo durante el proceso de extracción y si está transfiriendo un gran volumen de datos, tempdb pronto se quedará sin memoria como resultado de esta su extracción fallará. Por lo tanto, se recomienda establecer estos valores en un valor óptimo en función de su entorno.

Nota: Las recomendaciones anteriores se han realizado sobre la base de la experiencia adquirida trabajando con DTS y SSIS durante los últimos años. Pero como se señaló anteriormente, hay otros factores que afectan el rendimiento, uno de ellos es la infraestructura y la red. Por lo tanto, debe realizar pruebas exhaustivas antes de implementar estos cambios en su entorno de producción.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *