viernes, 22 de marzo de 2013

Optimizar SQL

Cuando realizamos una consulta a una BD para obtener datos hay que ver que dicha consulta está optimizada o lo que es lo mismo, ver si es la mejor manera como la hemos realizado. 

Si no lo hacemos podemos sobrecargar el sistema innecesariamente y que tarde en recuperar los datos de forma escandalosa.

Voy a comentar que podemos hacer para que al realizar una consulta SQL no quede lo mas optimizada posible con las siguientes ayudas:

-Lo primero que hay que tener en cuenta es que las tablas tienen que estar en 3FN con ello evitamos duplicidad de datos y para poder aprovechar al máximo el almacenamiento de los datos.

-Es muy común pensar crear campos para comentarios en una tabla y muchas veces ni los rellenamos, por eso es mejor crear una tabla a parte para los comentarios evitando así desperdiciar espacio.

-Los tamaños de los datos ajustarlos bien, poner los campos que son fijos los primeros de las tablas y los variables los últimos.

-Colocar indices en los atributos que nos sirven como nexos entre varias tablas por ejemplo en las claves de tablas con las que vayamos hacer consultas que requieran JOINs.

-Solo seleccionar los campos que necesitemos para la consulta y no seleccionar todos los campos con el clásico asterisco * .

-Indicar la tabla a la que accedemos cuando usamos varias tablas en una consulta con varios atributos procedentes de distintas tablas, viene bien el uso de alias.

-Es importante hacer que los WHEREs en las consultas los hagamos sobre los campos claves.

-Tener en cuenta el orden de las tablas en la clausula FROM y WHERE ya que si queremos obtener por ejemplo los PEDIDOS de un CLIENTE en el año 2012 es conveniente hacer primero que filtre el año para evitar que recorra todos los pedidos.

Estas son algunas de las cosas que se pueden hacer para que las consultas se realicen de una forma más optima. Aunque en otros artículos repasaré mas formas.