Durante la carrera de un DBA siempre nos enfocamos en que el servidor de base de datos pueda brindar el mejor desempeño posible,(claro que sin olvidar las demás tareas) y muchas de estas veces realizamos lo que llamamos "maquinazo" que no es otra cosa que cambiarnos a un equipo mas robusto o modificar el hardware de donde corren nuestras aplicaciones. Pero porque hacemos esto?

En realidad esto raramente resuelve el problema, pero hacemos esto porque para los desarrolladores es muy costoso el modificar varias líneas de código y rediseñar la base de datos después de que esta se encuentra en producción. Por eso no debemos de olvidar que la parte del diseño de la base de datos es algo muy importante durante el desarrollo de software.

Desgraciadamente existen demasiadas bases de datos en con este problema, y todo esto porque no son posibles de hacer un diseño que pueda almacenar todas las reglas del negocio, con el menor espacio posible. De las cosas que siempre debemos de recordar cuando nos encontremos diseñando una base de datos, es el espacio. Muchos podrían decir que no es importante, porque en la actualidad los discos duros han bajado de precio y podemos encontrar discos de varios gigas, pero el problema no es ese, sino que estos datos siempre deben de pasar por la memoria ram y el procesador y ahí es donde se va a encontrar el problema. Por ejemplo el consumir dos bytes de información de más en una tabla puede resultar costoso cuando esta mide millones de registros y puede ser la diferencia entre ser una base de datos útil o que pase a ser de poca utilidad para el negocio.

Normalización

Uno de los primeros pasos a realizar durante un diseño de base de datos es si denormalizamos algunas tablas o no. Desafortunadamente no existe una formula precisa que pueda decirnos si nos va a ayudar o no, pero existen una serie de reglas que debemos de seguir antes de denormalizar una base de datos

No denormalizar cuando:

  • La base de datos tiene demasiadas escrituras
  • Si el denormalizar puede generar contensión
  • No va a existir una mejora en el desempeño de los queries

Considerar denormalizar cuando

  • La base de datos tiene demasiadas lecturas
  • Se tienen queries que se ejecutan demasiadas veces y requieren de hacer joins
  • Se tienen queries con joins de 6 tablas o más.
  • Si va a existir una mejora en el desempeño de los queries


Cuál es la experiencia que ustedes han tenido en el diseño de la base de datos y su desempeño.

 

 

You are not authorised to post comments.

Comments powered by CComment

DBASupport - Foro

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 3 years ago.
  • 3 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
URGE AYUDA
  • Topic started by
  • in General
  • 16 years ago.
  • 16 years ago.
  • 30 replies
HOLA ESPERO ME PUEDAN AYUDAR. TEN GO UNA TABLA CON una estructura similar a la siguiente: id_mov cargo subtotal total...

Duada de Memoria de SQL Server 2005
  • Topic started by Erzengel
  • in General
  • 11 years ago.
  • 11 years ago.
  • 30 replies
Buen Día Recurro nuevamente a su sabiduría. Quiero saber el porque tiene un tope SQL Serever de 2GB en Windows server 2003 de 32 bit y si alguien...

SqlDateTime overflow
  • Topic started by
  • in General
  • 15 years ago.
  • 15 years ago.
  • 11 replies
Alguno de ustedes ha tenido este problema: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.' Les...

problemas para iniciar el agente sql
  • Topic started by acgch
  • in General
  • 14 years ago.
  • 14 years ago.
  • 11 replies
Recientemente para asegurar el sql server 2005, cree una cuenta sql con derechos de sysadmin y borre el grupo BUILTIN\Administradores para evitar...

Puerto de Enterprise Manager
  • Topic started by
  • in General
  • 13 years ago.
  • 13 years ago.
  • 12 replies
Hola, estoy tratando de acceder a mi enterprise manager de un oracle 10G, donde puedo ver en que puerto esta levantando para entrar desde mi...
Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 3 years ago.
  • 3 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...

Estadisticas en la base de datos
Buenos días, estoy teniendo problemas de performance en mis queries y quisiera saber como puedo validar que mis tablas tienen las estadisticas...
Deshabilitar todos los jobs
  • Topic started by agamez
  • in Jobs
  • 4 years ago.
  • 4 years ago.
  • 1 reply
Buenos días, alguien sabe como puedo deshabilitar rapidamente todos los jobs de SQL Server, gracias.

Mirroring con estados disconnected
Hola, el día de hoy después de reiniciar mi servidor de destino a donde realizo el mirroring ya no pude replicar más, el error que muestra es que...

Se me duplica el mensaje en /etc/motd
  • Topic started by agamez
  • in General
  • 3 years ago.
  • 3 years ago.
  • 2 replies
Buen día, alguien tiene idea porque después de actualizar a fedora 28 se me esta duplicando la salida de mi /etc/motd?

Cómo puedo filtrar un mensaje en el log messages
Buenos días, estoy recibiendo en mi log de errores muchos mensajes de cron, ya que tengo varios crones configurados en mi server. Existe alguna...

Cómo validar la hora de ejecución de un proceso
Hola, estoy tratando de validar que un proceso sólo pueda ser ejecutado dentro de un periodo de tiempo, en este caso entre las 7:00 AM y las 7:00...