ROW_NUMBER para paginación sin OFFSET excesivo
Cómo implementar paginación eficiente en tablas con millones de registros usando CTEs recursivas y funciones de ventana, evitando el degradado de performance que genera OFFSET en profundidad.
El blog de JobCore es un espacio dedicado a la divulgación de técnicas avanzadas, tutoriales paso a paso y noticias relevantes del mundo de las bases de datos. En un sector que se mueve tan rápido, mantenerse informado es vital para cualquier profesional de IT en Argentina. Aquí compartimos desde soluciones a errores comunes de sintaxis hasta análisis profundos sobre el futuro de los sistemas de gestión de bases de datos relacionales y no relacionales.
Las Window Functions son herramientas poderosas que a menudo se ignoran. En nuestros artículos, explicamos con ejemplos prácticos cómo usar ROW_NUMBER, RANK y LEAD para realizar análisis complejos sin necesidad de múltiples JOINs.
Estos tutoriales están diseñados para que pueda copiar, pegar y adaptar el código a sus propios proyectos de manera inmediata. Cada ejemplo incluye el contexto del plan de ejecución esperado y las advertencias sobre comportamiento en distintos motores.
Cómo implementar paginación eficiente en tablas con millones de registros usando CTEs recursivas y funciones de ventana, evitando el degradado de performance que genera OFFSET en profundidad.
La diferencia práctica entre RANK y DENSE_RANK cuando hay valores duplicados en la columna de ordenamiento. Incluye casos de uso reales: rankings de ventas, posiciones de leaderboard y top-N por categoría.
Calcular variaciones entre períodos consecutivos, detectar gaps en secuencias y comparar el registro actual con el anterior o siguiente. Aplicado a métricas de facturación y logs de transacciones.
Estrategias para segmentar resultados por combinaciones de dimensiones comerciales. Cómo particionar por sucursal y mes simultáneamente sin perder el contexto del dataset completo.
Dedicamos una serie de posts a identificar los anti-patrones más frecuentes en la escritura de SQL. Explicamos por qué el uso de SELECT * es perjudicial y cómo los predicados no sargables pueden arruinar el uso de índices. Aprender de los errores ajenos es la forma más rápida de mejorar la calidad de su propio código.
Especifique solo las columnas que la aplicación consume. Reduce I/O, memoria y tiempo de deserialización.
UPPER(), YEAR(), SUBSTRING() en el predicado impiden el uso del índice. Reescriba con operadores directos.
Comparar un VARCHAR con un NUMERIC obliga al motor a convertir fila por fila. Use el tipo correcto en el parámetro.
Considere reescribir con UNION ALL o separar en dos consultas si el plan resultante es más eficiente.
Cada lanzamiento de PostgreSQL o SQL Server trae consigo nuevas funcionalidades que pueden simplificar su trabajo. Analizamos los release notes y destacamos aquellas características que realmente importan para el desarrollo cotidiano.
El comando MERGE ahora soporta cláusulas WHEN NOT MATCHED BY SOURCE más precisas. Los bloqueos a nivel de fila se reducen en cargas OLTP mixtas.
Comparar motores →Tipo de dato VECTOR integrado en el engine. Permite almacenar embeddings y ejecutar búsquedas de similitud sin extensiones externas.
Comparar motores →Marque un índice como invisible para que el optimizador lo ignore sin eliminarlo. Verifique el impacto antes de hacer el cambio permanente.
Comparar motores →El planificador ahora elimina particiones dinámicamente cuando los parámetros se resuelven en un cursor. Reduce el escaneo en tablas particionadas por fecha.
Comparar motores →El histórico de planes de ejecución y métricas de runtime ahora se captura sin configuración adicional. Diagnostique regresiones de performance sin trazadores externos.
Comparar motores →Criterios para decidir el momento de migrar versión: ventanas de mantenimiento, compatibilidad de aplicaciones, y riesgos de quedarse en una versión sin soporte.
Comparar motores →Compartimos experiencias reales, preservando la confidencialidad, de desafíos técnicos que hemos resuelto para clientes en Argentina. Desde recuperaciones de datos catastróficas hasta optimizaciones que redujeron costos de nube a la mitad.
Estas historias ofrecen lecciones valiosas y perspectivas prácticas sobre la gestión de crisis en bases de datos. Cada caso documenta el diagnóstico inicial, las decisiones tomadas bajo presión y el resultado verificado en producción.
Un corte eléctrico en el datacenter del cliente dejó los write-ahead logs inconsistentes. Reconstruimos los segmentos dañados usando pg_resetwal y validamos la integridad referencial antes de reabrir el sistema. Tiempo total de recuperación: cuatro horas en horario laboral.
Un cliente SaaS pagaba sobrecargo por IOPS excesivo en RDS. Reemplazamos seis índices redundantes por tres índices compuestos con orden de columnas correcto. El consumo de IOPS bajó y la factura mensual se redujo a la mitad del monto anterior.
Una financiera necesitaba dejar de pagar licencias Oracle. Implementamos replicación lógica bidireccional con Debezium, migramos por tablas en lotes y mantuvimos ambos motores sincronizados durante 30 días antes del corte final.
Dos procedimientos almacenados competían por el mismo conjunto de filas en órdenes opuestas. Reescribimos el orden de acceso para que ambos sigan el mismo patrón de bloqueo. Los deadlocks desaparecieron en la primera semana posterior al cambio.
Una tabla de auditoría crecía sin control y las consultas de reporting tardaban minutos. Particionamos por mes con retención automática de 24 meses. Las consultas del último trimestre pasaron de 90 segundos a menos de 3 segundos.
No todo es escribir código; las herramientas que usamos definen nuestra productividad. Reseñamos clientes SQL, herramientas de monitoreo y software de modelado, tanto gratuitos como pagos. Ayudamos a los profesionales a armar su kit de herramientas ideal para enfrentar la jornada laboral con mayor eficiencia.
Exploramos cómo el procesamiento de lenguaje natural está facilitando la creación de queries y qué herramientas de IA están ayudando a los DBAs en la detección de anomalías. Discutimos el impacto de estas tecnologías en el mercado laboral y cómo los profesionales pueden adaptarse para seguir siendo valiosos. Es un análisis necesario para entender el futuro de nuestra profesión.
Modelos de lenguaje que generan consultas SQL a partir de preguntas en español. Útiles para usuarios de negocio, pero requieren validación de un DBA antes de ejecutar en producción.
Sistemas que aprenden el patrón de consultas normales y alertan cuando aparece una query inusual. Complementa, no reemplaza, el monitoreo tradicional de métricas.
Las tareas repetitivas de escritura de SQL básico se automatizan. El valor del profesional se desplaza hacia el diseño de esquemas, la optimización de planes y la arquitectura de datos.
Probamos cinco herramientas de text-to-SQL sobre esquemas reales de clientes. Las que rinden mejor no son las más grandes, sino las que reciben el esquema como contexto estructurado y no como texto libre.
La generación automática de SQL cubre el 20% de las consultas más simples. El 80% restante requiere conocimiento del dominio, del plan de ejecución y de las restricciones de negocio que un modelo no posee.
Una guía paso a paso para construir un pipeline que extrae métricas de PostgreSQL, las procesa con un modelo de isolation forest y emite alertas cuando una consulta se desvía del patrón histórico.
La ciberseguridad es un blanco móvil. Publicamos actualizaciones sobre nuevas vulnerabilidades y técnicas de mitigación específicas para servidores de bases de datos. Desde la configuración de TLS hasta políticas de contraseñas robustas, cubrimos todo lo necesario para mantener a los atacantes fuera de sus datos.
Los artículos de seguridad incluyen configuraciones verificadas para PostgreSQL, SQL Server y MySQL, con énfasis en entornos cloud híbridos donde la superficie de ataque se extiende más allá del perímetro del datacenter.
Configuración de certificados mutuos entre aplicación y motor. Cifrado de conexiones de replicación.
TDE en SQL Server, LUKS en Linux, pgcrypto para columnas sensibles. Gestión de claves.
Roles granulares, vistas con permisos por columna, y revocación de permisos por defecto.
Registro de quién consultó qué dato y cuándo. Detección de patrones de acceso sospechoso.
Nuestra página dedicada a seguridad de datos cubre configuraciones paso a paso para cada motor, plantillas de hardening y checklists de auditoría descargables.
Ver guía de seguridadAunque somos especialistas en SQL, reconocemos el valor de los motores NoSQL para ciertos casos de uso. Analizamos los escenarios donde una base de datos documental o de clave-valor es preferible y cómo lograr una arquitectura híbrida exitosa. Es una guía honesta para elegir la herramienta correcta para cada trabajo.
Muchos sistemas de producción en Argentina funcionan con arquitecturas híbridas: PostgreSQL para transacciones y MongoDB para logs de eventos. La decisión no es binaria, sino arquitectónica. Nuestros artículos detallan cómo implementar sincronización entre ambos mundos sin duplicar datos innecesariamente.
Conversamos con líderes técnicos y arquitectos de datos de las principales empresas de tecnología en Argentina. Nos cuentan sobre sus desafíos, las tecnologías que están adoptando y qué buscan al contratar nuevos talentos. Estas entrevistas ofrecen una visión clara de lo que el mercado demanda actualmente.
Conversación con un arquitecto de datos de una fintech argentina sobre cómo concilian los requisitos regulatorios del BCRA con la necesidad de procesar transacciones en milisegundos.
Un gerente de ingeniería de datos cuenta qué habilidades valora en candidatos con poca experiencia: fundamentos de SQL, capacidad de leer planes de ejecución y actitud frente a incidentes.
Pequeños cambios en el flujo de trabajo pueden generar grandes ahorros de tiempo. Compartimos atajos de teclado, extensiones de editores y métodos de organización de scripts para que su día a día sea más fluido. La eficiencia técnica también se trata de optimizar sus propios procesos humanos.
Configure plantillas en VS Code o DataGrip para SELECT, INSERT y UPDATE con marcadores de posición. Reduzca errores de tipeo en consultas que ejecuta varias veces al día.
Un sistema de nombres con prefijos por entorno (dev_, staging_, prod_) y sufijos por fecha. Facilita la trazabilidad y evita ejecutar el script equivocado en el entorno incorrecto.
Los cambios de esquema son código. Trátelos como tal: commits, revisiones y rollback. Cada cambio aplicado queda registrado con autor y motivo.
SQLFluff para linting, Prettier-SQL para formato consistente. Configure reglas de estilo en el repositorio para que todo el equipo escriba SQL con la misma convención.
Use archivos de sesión para guardar consultas que probó durante una investigación. Cuando el mismo problema aparezca en tres meses, tendrá el punto de partida listo.
El código SQL explica lo que hace. Los comentarios deben explicar la decisión comercial detrás de un filtro inusual o un JOIN particular. Ese contexto no se reconstruye del código.
Cada dos semanas enviamos un resumen con los tutoriales publicados, las novedades de los motores y los casos de consultoría. Sin contenido promocional, sin ruido. Solo conocimiento técnico aplicable a su trabajo diario con bases de datos.
Avenida Corrientes 1250, C1043 Buenos Aires, Argentina
+54 11 4312 8800
[email protected]
Lunes a Viernes
09:00 - 18:00