Con el aumento de volumen de los datos en nuestras organizaciones surge la problemática de cómo realizar cargas cada vez mayores de forma rápida y eficiente. En esta sesión realizaremos un recorrido comenzando por el hardware, pasando por la configuración de sql server y finalizando con las estrategias de carga.
Actualmente, aunque el hardware es cada vez más potente también tenemos potenciales impactos negativos debido a la virtualización y el Cloud. Es muy habitual encontrar máquinas virtuales con rendimientos absurdamente lentos por no tener suficientes recursos asignados o por el exceso de concurrencia con otras virtuales en el mismo host. También debemos formarnos expectativas realistas en base a nuestros recursos, ya que es habitual quedarnos prendados de los benchmark y rendimientos que se muestran en eventos, demos, etc. y no ser conscientes de que están utilizando hardware puntero para conseguir dichos resultados (por ejemplo, tarjetas de red Mellanox a 100 Gbps, SSDs NVME, etc.).
La configuración de SQL Server puede tener también un impacto importante en el rendimiento cuando nuestras necesidades sean muy particulares (más alejadas de lo habitual) o realmente cuando queramos exprimir al máximo el hardware. Sin embargo, en nuestra experiencia en la mayor parte de tunings de cargas de datos el problema de fondo no es el hardware (que suele haberse ajustado al alza previamente al detectarse falta de rendimiento) ni tampoco la configuración de SQL Server sino la forma en la que la carga se ha diseñado.
Cuando hablamos de estrategias de carga es importante que entendamos nuestros cuellos de botella a nivel de infraestructura e intentemos buscar alternativas para aliviarlos. Por ejemplo, si nuestro cuello de botella es el ancho de banda de una WAN pues podemos considerar la compresión de los datos antes del envío y la correspondiente descompresión tras la recepción. No existen balas de plata que nos permitan acelerar “cualquier carga” por lo que un análisis de las distintas estrategias para nuestro caso particular y realizar varias pruebas de concepto serán pasos casi imprescindibles para optimizar cada caso.