Cómo cargo o purgo millones de filas sin bloquear el reporting?
Cuaderno N°11 · Serie «Trucos de T-SQL para tu DW»
Por Javier Loria · Lectura ~13 min · SQL Server · Particionamiento · Data Warehouse
En un data warehouse grande, dos operaciones rutinarias se vuelven un dolor cuando la tabla pesa cientos de millones de filas: cargar el lote nuevo —el mes que cierra, el día que entra— y borrar o archivar el histórico viejo que ya nadie consulta. A fuerza bruta —un INSERT masivo contra la fact viva, un DELETE de millones de filas— las dos bloquean la tabla, inflan el log y dejan la ventana de carga sin cerrar a tiempo.
La respuesta de nivel industrial es partition switching, que mete o saca un bloque entero de datos cambiando metadata, en milisegundos, sin mover una sola fila física. Este cuaderno muestra los dos usos que más valen en producción: ingestar con una ventana deslizante y reemplazar o deprecar un bloque completo. Más los requisitos que el switch exige y la trampa de mover fronteras.
Qué vas a encontrar:
- El problema: el DELETE masivo que cierra la bodega (bloqueos, log inflado).
- El truco: el switch de dos pasos, en milisegundos por metadata.
- Por qué el switch es exigente, y cómo avisa fuerte cuando no se cumplen sus requisitos.
- La ventana deslizante: cada período nuevo entra, el más viejo sale.
- La trampa de mover fronteras (SPLIT/MERGE RANGE) que puede revivir el costo que querías evitar.
- Qué cambia si estás en Microsoft Fabric.
