Sé que muchos de nosotros, más de una vez, hemos usado
selects anidados. ¿No saben a qué me refiero? Sí estas largas sintaxis:
Select Nombres,
apellidos,
(Select
descripción from ubigeo u where a.ubigeo = u.ubigeo) distrito,
Dirección
From persona
Aunque parezca insignificante esta línea “(Select descripción
from ubigeo u where a.ubigeo = u.ubigeo)” consume gran cantidad de recursos al
momento de ejecutar la consulta. Esto debido a que por cada registro que
devuelva su consulta se ejecutara el select de ubigeo, por ejemplo si su
consulta devuelve 10 000 registros el servidor le hará select 10 000 veces a la
tabla ubigeo. Quizá con pocos registros no noten la diferencia, pero cuando
manejen una gran cantidad créanme que el tiempo de respuesta de sus consultas
realmente SI IMPORTA.
Después de lo anteriormente expuesto la mejor manera de
hacer ese select seria:
Select P.Nombres,
P.apellidos,
U.descripción
distrito,
P.Dirección
From persona
P
Inner
Join Ubigeo U On P.ubigeo = U.ubigeo
Donde:
Después la cláusula “inner join” debe de ir la tabla con la
que vamos a unir la consulta, luego con la cláusula “On” procedemos a indicar
los campos clave para indexar ambas
tablas
De esta manera solo invocamos a la tabla una sola vez.
Cabe recomendar que para un mejor desempeño lo más
recomendable es que los campos a indexar sean PK(Primary Key) o FK(Foreing Key).
El uso de Joins nos ayudara a mejorar el rendimiento de la consulta, ahorrando tiempo al momento de la ejecución.
El uso de Joins nos ayudara a mejorar el rendimiento de la consulta, ahorrando tiempo al momento de la ejecución.