Saltear al contenido principal

Problemas al consultar millones de registros en SQL Server

Estaría de más que te pidamos más detalles de los problemas de los que estás hablando. Si lo primero de lo que hablamos es de consultar millones de registros en SQL Server y la conversación empieza con “Problemas”, muy probablemente quieras hablar de “Lentitud”.

¿Es verdad que mientras más registros tienen nuestras tablas, más lentos se ponen los programas? Veremos de qué se trata todo esto.

¿Cúando una tabla es “Grande”?

Hablar de “millones” ya parece un símbolo de magnitud considerable. El punto aquí es que no dependemos de este número.

Una tabla puede tener un volumen mayor dependiendo de diferentes factores como:

  • Tipos de datos
  • Cantidad de columnas
  • Cantidad de índices
  • Cantidad de registros
  • Fill Factor

Así que olvida que el tamaño depende de la cantidad de filas en una tabla.

Primero debes entender esta teoría

Utiliza la tabla FakeTable que creamos en el artículo Millones de datos aleatorios en SQL Server.

Basados en esta tabla crearemos unas adicionales pero cargando los mismos datos que ya tiene. Inicia creando las tablas.

¡Bien! Ya están creadas las 4 tablas que como puedes ver tienen algunas variaciones de las que hemos mencionado como factores que determinan el volumen de una tabla.

Ahora vamos a insertar los mismos registros que la tabla FakeTable que creamos en el artículo mencionado más arriba.

No te olvides que estamos trabajando con EXACTAMENTE los mismos datos y las mismas cantidades de registros en todas las tablas.

Solamente para adicionar un poco de emoción, crearemos una quinta tabla, más sencilla y solo con dos columnas. La cargamos también con datos; menos de la mitad de la primera tabla.

Ahora analiza los resultados

Vamos a sacar un reporte de tablas y tamaños en la base de datos. Puedes ayudarte ejecutando el procedimiento sp_ReportUserDBTables. Si no lo tienes, visita la publicación Genera un Reporte de Tablas de SQL Server.

consultar-millones-de-registros-en-sql-server

Vamos a enfocarnos en las columnas señaladas. Mira cómo quedan las proporciones en este ejercicio.

  • En las primeras 4 tablas mantenemos la cantidad de registros
  • En las primeras 4 tablas existen diferentes tamaños requeridos
  • La 5ta tabla tiene muchos menos registros
  • La 5ta tabla es mucho más grande que las primeras 4

Entonces ¿cómo consultar millones de registros en SQL Server?

Primero que nada, olvídate que la cantidad de filas es una dificultad.

Uno de los factores importantes que determina la dificultad del procesamiento de una consulta, es la cantidad de páginas que ella va a leer.

Claramente podemos ver que mientras más almacenamiento requiere una tabla, mayor la cantidad de páginas que van a ser leídas.

El ejemplo te lo muestra de una manera muy intuitiva. Podemos consultar menor cantidad de registros (Tabla5) pero tener mayor espacio en disco ocupado. O tener la misma información (Tablas1-4) con diferentes necesidades de espacio.

Optimizar para consultar millones de registros

Millones o no, siempre hay alternativas. Para empezar, puedes ver este artículo sobre Cómo hacer consultas más rápidas en SQL Server.

La cantidad de páginas que vas a leer es muy importante, por eso, revisa Cómo medir la lectura en SQL Server.

Cuando consigas reducir la cantidad de lectura, a través de índices u optimización de estructuras y consultas, verás cómo vas optimizando las operaciones en tu base de datos.

Pablo Javier Fernández

www.datoptim.com
I love working on SQL Server Performance Tuning and finding the origin of the problems. Music and SQL Server passionate.

Deja un comentario

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

Close search

Carrito

Volver arriba