e8d soluciones Omitir vínculos de navegación

Soluciones

JOIN: USO Y POSIBLES PROBLEMAS

Introducción

El uso de JOINS nos permite unir registros de dos o más tablas dentro de un diagrama relacional.

Existen varios tipos de JOIN:

1. INNER JOIN: Nos proporciona los registros comunes que hay entre las tablas. Sólo los comunes.

2. LEFT o RIGHT JOIN: Dependiendo de los resultados que queramos obtener y de la colocación de las tablas en nuestra sentencia, usaremos Left o Right join para extraer de una de las tablas todos sus registros y de la otra los que tenga en común con la tabla anterior.

3. FULL OUTER JOIN: Nos dará todos los registros de ambas tablas.

Posibles Problemas que plantea el uso de JOIN:

Enmarcarar registros duplicados con el uso de SELECT DINTINCT

Es tentador el uso de SELECT DISTINCT para eliminar filas duplicadas en los usos de JOIN. Es mucho mejor determinar que filas son las duplicadas y arreglar el problema.

Mezclar diferentes tipos de datos en el uso de JOIN o cláusulas Where

Si comparamos o unimos columnas con diferente tipo de datos, estamos usando conversiones implícitas cuyo resultado puede ser deficiente en el escaneo de las tablas. Este resultado puede generar errores ya que no existen restricciones que garanticen que el tipo de datos sea el correcto.

Uso innecesario de Full Outer Join

Cuando usamos OUTER JOINS damos como resultado las filas que coinciden en una tabla con la otra y las que no. Este uso no debería de ser el habitual a la hora de unir las tablas, especialmente si filtramos las filas no coincidentes a través del uso de la cláusula WHERE. El uso de INNER, LEFT, RIGHT JOIN nos proporcionará el resultado de las filas que coinciden y si necesitamos todas las filas de ambas tablas es mejor usar CROSS JOIN

Uso de subconsultas en lugar de JOIN

El uso de una subconsulta contra una fila de una tabla puede parecer algo intuitivo y disfraza la idea real que es el uso de un CURSOR. A veces las funciones de las ventanas de consultas suelen dar las soluciones más rápidas a la misma operación. Muchas de ocasiones en las que utilizamos subconsultas pueden ser sustituidas por una consulta JOIN mucho más simple y rápida.

Uso de Join en vistas largas

Las vistas son como las tablas en su comportamiento, pero no pueden ser indexadas para soportar el uso de JOINS. El uso de JOIN en una vista larga nunca dará un buen resultado. En lugar de crear una vista es mejor indexar bien las tablas o crear una tabla temporal indexada que contenga las filas ya filtradas de las vistas en las que queramos hacer uso de JOIN


Mapa del sitio

HOME

EMPRESA

SERVICIOS

DATOS DISPONIBLES

TRATAMIENTO DE DATOS

GEOGRÁFICOS

ANÁLISIS ESTADÍSTICO DE DATOS

BUSINESS INTELLIGENCE

AUDITORÍA INFORMÁTICA

CONTACTO


Contacto

telefono e8d        91 776 85 20 / 91 355 29 30

telefono e8d       Ctra. Villaverde Vallecas Km 3.5 (C.T.M.-Oficina 209)

email e8d info@e8dsoluciones.es



Política de privacidad

Política de calidad

Política de cookies