Sei sulla pagina 1di 7

1

El Rendimiento de los Tipos de Datos Inner Join


en SQL.
Gustavo Ladino Pinzón

Corporación Universitaria Minuto de Dios, Facultad de Ingenierías, Bogotá - Colombia

Gustavo Ladino, gladinopinz@uniminuto.edu.co

RESUMEN calificar todas las referencias a estas


columnas a lo largo de la consulta con los
El documento hace una breve comparación nombres de las tablas para evitar la
del rendimiento de los tipos de uniones ambigüedad.
NATURAL JOIN, JOIN…, USING JOIN Y La mayoría de las consultas de unión
ON para la obtención de datos por medio de contienen al menos una condición de unión,
la combinación de filas de dos o más tablas o ya sea en la cláusula FROM o en la cláusula
vistas materializadas utilizando la sintaxis WHERE. La condición de unión compara dos
ANSI/ISO SQL de 1999. columnas, cada una de una tabla diferente.
Cada uno de estos tipos inner join tiene su Para ejecutar una unión, la base de datos
propia condición, pero la pregunta es si hay Oracle combina pares de filas, cada una de las
una consulta que reúne y cumple con las cuales contiene una fila de cada tabla, para la
condiciones de todos estos tipos, cuáles de cual la condición de unión se evalúa como
ellas tienen mejor VERDADERA. Las columnas en las
rendimiento o cuál de ellos es el más rápido? condiciones de unión no necesitan aparecer
Oracle Database realiza una combinación también en la lista de selección.
cada vez que aparecen varias tablas en la Palabras clave: SQL, Oracle Database, inner
cláusula FROM de la consulta. La lista de join, natural join, eqiijion, using join,
selección de la consulta puede seleccionar producto cartesiano, clausula WHERE,
cualquier columna de cualquiera de estas clausula ON, clausula USING, bases de datos
tablas. Si cualquiera de estas dos tablas tiene relacionales, SGBD.
un nombre de columna en común, debe
2

I. INTRODUCCIÓN

INNER JOIN es la más común y


frecuentemente utilizada en unión de tablas
en SQL, también referida como EQUIIJOIN
que es una unión con una condición que
contiene un operador de igualdad. INNER
JOIN junta dos o más tablas devolviendo una
tabla de resultados para todos
las filas de una tabla que tienen una o más
Figura 2. SQL Joins. Tomado de:
filas coincidentes en la otra https://es.wikipedia.org/wiki/Join#/media/File
tabla. :Joins_del_SQL.svg

• Inner Join: Devuelve registros que


tienen valores coincidentes en ambas
tablas.

• Left (outer) Join: Devuelve todos los


Figura 1. Diagrama ER Inner Join registros de la tabla izquierda y los
registros coincidentes de la tabla
En bases de datos relacionales, los datos son derecha.
distribuidos en varias tablas relacionadas, en
la figura 1 vemos que el campo Pedido_id
esta almacenado en la tabla Pedidos y en la
tabla Pedido_item. • Right (outer) Join: Devuelva todos los
registros de la tabla derecha y los
registros coincidentes de la tabla
izquierda.
3

A. Join en clausula ON

• Full (outer) Join: Devuelve todos los


registros cuando hay una coincidencia
en la tabla izquierda o derecha.

Para especificar condiciones arbitrarias o


• Cross Join: Produce un producto especificar columnas para unir, se utiliza la
cartesiano de las tablas que están cláusula ON, la condición de unión se separa
involucradas, el tamaño del producto de otras condiciones de búsqueda, es decir, es
cartesiano es el numero de filas de la básicamente una unión de igualdad de todas
primera tabla multiplicado por el las columnas con el mismo nombre. La
numero de filas de la segunda tabla. cláusula ON facilita la comprensión del
código.

II. TIPOS DE INNER JOIN B. Join en clausula WHERE

Existen cuatro tipos de inner join: La cláusula WHERE formula una condición
NATURAL JOIN, JOIN…, ON, y la cláusula de búsqueda para las filas devueltas en la
WHERE; las tres primeras son standard instrucción SELECT, La cláusula WHERE
ANSI SQL/99. INNER JOIN se puede aparece después de la cláusula FROM pero
especificar con una condición explícita o antes de la cláusula ORDER BY. Después de
implícita según: la palabra clave WHERE es la condición
search_condition que define una condición
4

que deben cumplir las filas devueltas.


Además de la instrucción SELECT, puede
usar la cláusula WHERE en la instrucción
DELETE o UPDATE para especificar qué
filas actualizar o eliminar.

D. Join en clausula USING

Se utiliza la clausula USING para hacer


coincidir solamente una columna cuando
coincidan varias, además no debería utilizar
un nombre o alias de tabla en las columnas de
referencia.
Si varias columnas tienen los mismos
nombres, pero los tipos de datos no coinciden,
la clausula NATURAL JOIN se puede
C. Join en clausula NATURAL modificar con la clausula USING para
especificar las columnas que se deben utilizar
La cláusula NATURAL JOIN se basa en para una unión de igualdad.
todas las columnas de las dos tablas que
tienen el mismo nombre.
Selecciona filas de las dos tablas que tienen
los mismos valores en todas las columnas
coincidentes.
Si las columnas que tienen el mismo nombre
tienen distintos tipos de dato, se devuelve un
error.
5

Cuando se ejecuta una consulta SQL en VI. IMPORTANCIA DE LA


Oracle, Oracle crea una consulta Plan de INVESTIGACION
ejecución con el fin de recuperar datos de las
tablas. La consulta Plan de ejecución es un En bases de datos, el rendimiento de las
conjunto de métodos sobre cómo la base de consultas generadas suele convertirse en un
datos tendrá acceso a los datos de las tablas, problema, porque tener consultas de larga
esta consulta puede tener una ejecución ejecución consume recursos del sistema que
diferente necesitan un costo y tiempo hacen que el servidor y la aplicación se
diferentes para la ejecución de la consulta, el ejecuten lentamente pero también puede
optimizador de consultas elige el plan más llevar a problemas de bloqueo de tablas y
eficaz para la recuperación de dato para lograr corrupción de datos.
un mejor rendimiento que significa una La mayoría de las consultas usan JOIN entre
respuesta rápida en los datos acción de tablas, el proceso en bases de datos
recuperación. relacionales es importantes para la
recolección de datos para más de una tabla
III. OBJETIVOS para que los datos recuperados sean
consistentes.
Los objetivos específicos para este El hecho de que hay diferentes tipos de tablas
documento son: de combinación especialmente en
• Proporcionar una explicación sobre inner join, es importante para los
los tipos de Inner Join en SQL desarrolladores de sistemas de bases de datos
• Para estudiar el rendimiento de los entender estos tipos y saber cuál de ellos tiene
tipos de unión interna mejor rendimiento para ser usado en la
comparando los promedios del tiempo construcción de una buena consulta que sirva
de ejecución de a su propósito en el menor costo.
cada tipo.
• Para optimizar las consultas basadas
en las directrices y tiempos de
respuesta en un SGBD.
6

V. METODOLOGIA Join Natural Join Join Where


Type Join Usin On

A. Procedimientos.
Mejorar el rendimiento significa hacer las Time 0.0077 0.0083 0.0050 0.0053
Average
cosas mas rápido, ya que el rendimiento
(seconds)
siempre y solo es sobre el tiempo. El
rendimiento de la consulta se basa en
Tabla 1. Tiempo promedio de ejecución del
encontrar problemas que se pueden ver
quiery en cada tipo Join
mediante el uso de estadísticas, se tienen que
recoger los datos estadísticos sobre un factor
B. Resultados
importante que afecta el rendimiento de la
Como la tabla 1 y el histograma en la muestra
consulta, ese es el tiempo de respuesta o el
que la velocidad
tiempo de ejecución del que queremos hacer
promedio de NATURAL JOIN, JOIN ...
una consulta sencilla en Oracle Database para
USING, JOIN ... ON, y
unir las tablas Employees y Jobs.
WHERE JOIN son respectivamente: 0.0077
La consulta esta escrita de 4 formas diferentes
seg., 0.0083 seg., 0.0050
para cumplir con los custro tipos de
seg., y 0.0053 seg., por lo tanto, estos tipos de
condiciones de Inner Join en SQL: el primero
INNER JOIN pueden ser
usando NATURAL JOIN, el segundo usando
organizados de la velocidad más rápida a la
JOIN…USING, el tercero usando
más baja de la siguiente manera: JOIN ... ON,
JOIN…ON y el cuarto usando la cláusula
WHERE Join, NATURAL JOIN, y JOIN…
WHERE mencionados anteriormente.
USING.
Cada consulta se ejecuto 30 veces y los datos
obtenidos son calculados en la tabla 1.
7

REFERENCIAS [6 D. Burleson, «Oracle SQL WHERE


] clause Tips,» Burleson Consulting, 2017.
Referencias [En línea]. Available: http://www.dba-
oracle.com/t_where_clause.htm.
[1 F. Y. Alnawaj'ha, « The Performance Of [7 2. J. 2. Nirav Prabtani, «Types of Join in
] Inner Join Types in SQL,» de ] SQL Server,» Code Proyect, 20 Enero
INTERNATIONAL JOURNAL OF 2014. [En línea]. Available:
ADVANCED STUDIES, Hebron, https://www.codeproject.com/Tips/7129
Palestina, International Journal Computer 41/Types-of-Join-in-SQL-Server.
Science Engineering-IJASCSE, 2016, pp.
164 - 168.
[2 R. Ramklass, OCA Oracle Database 12c
] SQL Fundamentals I Exam Guide,
U.S.A.: Mc Graw-Hill, 2014.
[3 Oracle, «Oracle Help Center,» 2019. [En
] línea]. Available:
https://docs.oracle.com/en/database/oracl
e/oracle-
database/19/sqlrf/Joins.html#GUID-
D688F2E3-7F1E-4339-894F-
01A73E62328C.
[4 Oracle Tutorial, «Oracle Joins,» 2019.
] [En línea]. Available:
http://www.oracletutorial.com/oracle-
basics/oracle-joins/.
[5 D. K. Burleson,
] «oracle_tips_iso99_joins,» Burleson
Consulting, 2017. [En línea]. Available:
http://www.dba-
oracle.com/oracle_tips_iso99_joins.htm.

Potrebbero piacerti anche