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.

Entradas relacionadas: