Optimización de transferencia de datos en consultas SQL
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,11 KB
Respuestas:
1)
a_ Tamaño relación Clientes (nodo 1) = 5000 * 123 bytes = 615000 bytes
Tamaño relación Sucursales (nodo 2) = 100 * 71 bytes = 7100 bytes
b_ Sentencia SQL:
Select Apellido_y_Nombre, Nombre_Sucursal from Clientes inner join Sucursales on Numero_Sucursal = Nro_Sucursal
Nodo 3 => resultado
Ape y Nom Clientes à 30 bytes
Nom Sucursal à 30 bytes
Resultado Consulta: (30+30)*500 = 300.000 bytes
Existen 3 soluciones posibles (INNER JOIN):
I) Nodo 1 – Nodo 3
Nodo 2 – Nodo 3
Total transferencia: 615.000 + 7.100 = 622.100 bytes
II) Nodo 1 – Nodo 2 à 615.000 bytes
Nodo 2 – Nodo 3 à 300.000 (resultado consulta)
Total transferencia: 615.000 + 300.000 = 915.000 bytes
III) Nodo 2 – Nodo 1 à 7.100 bytes
Nodo 1 – Nodo 3 à 300.000 bytes (Consulta)
Total transferencia: 7.100 + 300.000 = 307.100 bytes
·La mejor opción es la III ya que realiza menor transferencia de datos, optimizando el recurso de la red.
Nodo 2 como Nodo Resultado (INNER JOIN):
I) Nodo 1 – Nodo 2 à total transferencia: 615.000 bytes
II) Nodo 2 – Nodo 1 à 7.100 bytes
Nodo 1 – Nodo 2 à Resultado Consulta 300.000 bytes
Total Transferencia: 307.100 bytes
·En este caso la mejor opción es la II
Nodo 1 y Nodo 2 únicamente y el resultado es obtenido en el Nodo 2 (SEMI JOIN)
Paso 1: Nodo 2 – Nodo 1 p/el semi join el N° de Sucursal
Atributo Nro. Sucursal à 4 bytes * 100 registros = 4.000 bytes transferidos
Paso 2: Procesamos Nodo 1
4 bytes (Nro. Sucursal) + 30 bytes (Ape y Nom) = 34 bytes * 5000 reg = 170.000 bytes
Paso 3: Nodo 1 – Nodo 2
Resultado à 170.000 bytes
Total Transferencia: 170.000 bytes + 400 bytes = 170.400 bytes
·Siendo este la mejor opción que todas las anteriores.
2)
a_ Tamaño relación Profesores (nodo 1) = 7000 * 88 bytes = 616.000 bytes
Tamaño relación Facultades (nodo 2) = 200 * 77 bytes = 15.400 bytes
b_ Sentencia SQL:
Select Apellido_y_Nombre, denominacion from Profesores inner join Facultades on Numero_Sucursal = Nro_Sucursal
Nodo 3 => resultado
Ape y Nom Profesores à 30 bytes
Denominacion Facultades à 32 bytes
Resultado Consulta: (30+32)*7000 = 434.000 bytes
Existen 3 soluciones posibles (INNER JOIN):
I) Nodo 1 – Nodo 3
Nodo 2 – Nodo 3
Total transferencia: 616.000 + 15.400 = 631.400 bytes
II) Nodo 1 – Nodo 2 à 616.000 bytes
Nodo 2 – Nodo 3 à 434.000 (resultado consulta)
Total transferencia: 616.000 + 434.000 = 1.050.000 bytes
III) Nodo 2 – Nodo 1 à 15.400 bytes
Nodo 1 – Nodo 3 à 434.000 bytes (resultado consulta)
Total transferencia: 15.400 + 434.000 = 449.400 bytes
·La mejor opción es la III ya que realiza menor transferencia de datos, optimizando el recurso de la red.
Nodo 2 como Nodo Resultado (INNER JOIN):
I) Nodo 1 – Nodo 2 à total transferencia: 616.000 bytes
II) Nodo 2 – Nodo 1 à 15.400 bytes
Nodo 1 – Nodo 2 à Resultado Consulta 434.000 bytes
Total Transferencia: 449.400 bytes
·En este caso la mejor opción es la II
Nodo 1 y Nodo 2 únicamente y el resultado es obtenido en el Nodo 2 (SEMI JOIN)
Paso 1: Nodo 2 – Nodo 1 p/el semi join el codigo de facultad
Atributo cod_facultad à 2 bytes * 200 registros = 400 bytes transferidos
Paso 2: Procesamos Nodo 1
2 bytes (cod_facultad) + 30 bytes (Ape y Nom) = 32 bytes * 7000 reg = 224.000 bytes
Paso 3: Nodo 1 – Nodo 2
Resultado à 224.000 bytes
Total Transferencia: 224.000 bytes + 400 bytes = 224.400 bytes
·Siendo este la mejor opción que todas las anteriores.
3)
a_ Tamaño relación Remedios (nodo 1) = 100.000 * 81 bytes = 8.100.000 bytes
Tamaño relación Laboratorios (nodo 2) = 100 * 90 bytes = 9.000 bytes
b_ Sentencia SQL:
Select nom_com, nombre from Remedios inner join Laboratorios on labo = laboratorio;
Nodo 3 => resultado
nom_com Remedios à 20 bytes
Nombre Laboratorios à 20 bytes
Resultado Consulta: (20+20)*100.000 = 4.000.000 bytes
Existen 3 soluciones posibles (INNER JOIN):
I) Nodo 1 – Nodo 3
Nodo 2 – Nodo 3
Total transferencia: 8.100.000 + 9.000 = 8.109.000 bytes
II) Nodo 1 – Nodo 2 à 8.100.000 bytes
Nodo 2 – Nodo 3 à 4.000.000 (resultado consulta)
Total transferencia: 12.100.000 bytes
III) Nodo 2 – Nodo 1 à 9.000 bytes
Nodo 1 – Nodo 3 à 4.000.000 bytes (resultado consulta)
Total transferencia: 4.009.000 bytes
·La mejor opción es la III ya que realiza menor transferencia de datos, optimizando el recurso de la red.
Nodo 2 como Nodo Resultado (INNER JOIN):
I) Nodo 1 – Nodo 2 à total transferencia: 8.100.000 bytes
II) Nodo 2 – Nodo 1 à 9.000 bytes
Nodo 1 – Nodo 2 à Resultado Consulta 4.000.000 bytes
Total Transferencia: 4.009.000 bytes
·En este caso la mejor opción es la II
4)
a_ Tamaño relación Empleados (nodo 1) = 10.000 * 100 bytes = 616.000 bytes
Tamaño relación Departamentos (nodo 2) = 100 * 35 bytes = 3.500 bytes
b_ Sentencia SQL:
Select Apellido_y_Nombre, nombre from Empleados inner join Departamentos on cod_dep = codigo;
Nodo 3 => resultado
Ape y Nom Empleados à 25 bytes
nombre Departamento à 20 bytes
Resultado Consulta: (25+20)*10.000 = 450.000 bytes
Existen 3 soluciones posibles (INNER JOIN):
I) Nodo 1 – Nodo 3
Nodo 2 – Nodo 3
Total transferencia: 1.000.000 + 3.500 = 1.003.500 bytes
II) Nodo 1 – Nodo 2 à 1.000.000 bytes
Nodo 2 – Nodo 3 à 450.000 (resultado consulta)
Total transferencia: 1.450.000 bytes
III) Nodo 2 – Nodo 1 à 3.500 bytes
Nodo 1 – Nodo 3 à 450.000 bytes (resultado consulta)
Total transferencia: 453.500 bytes
·La mejor opción es la III ya que realiza menor transferencia de datos, optimizando el recurso de la red.
Nodo 2 como Nodo Resultado (INNER JOIN):
I) Nodo 1 – Nodo 2 à total transferencia: 1.000.000 bytes
II) Nodo 2 – Nodo 1 à 3.500 bytes
Nodo 1 – Nodo 2 à Resultado Consulta 450.000 bytes
Total Transferencia: 453.000 bytes
·En este caso la mejor opción es la II
Nodo 1 y Nodo 2 únicamente y el resultado es obtenido en el Nodo 2 (SEMI JOIN)
Paso 1: Nodo 2 – Nodo 1 p/el semi join el codigo de departamento
Atributo codigo à 3 bytes * 100 registros = 300 bytes transferidos
Paso 2: Procesamos Nodo 1
3 bytes (cod_dep) + 25 bytes (Ape y Nom) = 28 bytes * 10.000 reg = 280.000 bytes
Paso 3: Nodo 1 – Nodo 2
Resultado à 280.000 bytes
Total Transferencia: 280.000 bytes + 300 bytes = 280.300 bytes
·Siendo este la mejor opción que todas las anteriores.