sql >> Base de Datos >  >> RDS >> Sqlserver

Base de datos que puede manejar>500 millones de filas

MSSQL puede manejar esa cantidad de filas sin problemas. El tiempo de consulta depende completamente de muchos más factores además del simple recuento de filas.

Por ejemplo, va a depender de:

  1. cuántas uniones hacen esas consultas
  2. qué tan bien están configurados sus índices
  3. cuánta memoria RAM hay en la máquina
  4. velocidad y número de procesadores
  5. tipo y velocidad de giro de los discos duros
  6. tamaño de la fila/cantidad de datos devueltos en la consulta
  7. Velocidad/latencia de la interfaz de red

Es muy fácil tener una tabla pequeña (menos de 10,000 filas) que tomaría un par de minutos para ejecutar una consulta. Por ejemplo, usar muchas uniones, funciones en la cláusula where e índices cero en un procesador Atom con 512 MB de RAM total.;)

Se necesita un poco más de trabajo para asegurarse de que todos sus índices y relaciones de clave externa sean buenas, que sus consultas estén optimizadas para eliminar llamadas de funciones innecesarias y solo devuelvan los datos que realmente necesitan. Además, necesitará hardware rápido.

Todo se reduce a cuánto dinero desea gastar, la calidad del equipo de desarrollo y el tamaño de las filas de datos con las que está tratando.

ACTUALIZAR Actualizando debido a cambios en la pregunta.

La cantidad de información aquí todavía no es suficiente para dar una respuesta del mundo real. Solo tendrá que probarlo y ajustar el diseño y el hardware de su base de datos según sea necesario.

Por ejemplo, podría fácilmente tener mil millones de filas en una tabla en una máquina con esas especificaciones y ejecutar una consulta "seleccionar id superior (1) de tableA (nolock)" y obtener una respuesta en milisegundos. Del mismo modo, puede ejecutar una consulta "select * from tablea" y demorar un tiempo porque, aunque la consulta se ejecutó rápidamente, la transferencia de todos esos datos a través de la red lleva un tiempo.

El punto es que tienes que probar. Lo que significa configurar el servidor, crear algunas de sus tablas y llenarlas. Luego, debe realizar un ajuste de rendimiento para que sus consultas e índices sean correctos. Como parte del ajuste del rendimiento, descubrirá no solo cómo deben reestructurarse las consultas, sino también exactamente qué partes de la máquina deben reemplazarse (es decir, disco, más RAM, CPU, etc.) según el bloqueo. y tipos de espera.

Le recomiendo que contrate (o contrate) uno o dos DBA para que hagan esto por usted.