0% encontró este documento útil (0 votos)
24 vistas2 páginas

Optimización de Consultas en PostgreSQL

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
24 vistas2 páginas

Optimización de Consultas en PostgreSQL

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UTEC

Ciencias de la Computación
CS2702 - Base de Datos II Laboratorio 15.1

Optimización de Consultas Distribuidas en PostgreSQL


Profesor: Heider Sanchez
ACLs: Leonardo Isidro, Mariana Capuñay, Sebastián Loza

El Ministerio de Salud ha lanzado una iniciativa para recolectar datos de diagnósticos médicos
de diversos centros de salud en todo el paı́s. El objetivo es analizar el estado de salud de
la población y mejorar la toma de decisiones en polı́ticas públicas. Para ello, se han con-
siderado dos tablas para recopilar la información: Médico y Diagnóstico. Debido a la gran
cantidad de datos, se ha decidido gestionar la información en una base de datos distribuida,
optimizando ası́ el tiempo de respuesta en consultas y análisis.

Médico

DNI Nombre Apellidos Especialidad NumColegiado CentroSalud Ciudad

Diagnóstico

Id DNI Paciente DNI Medico Ciudad Diagnóstico Peso(kg) Edad Sexo

Consultas de usuario final:

a) Select * From Diagnostico Order By Ciudad.

b) Select distinct DNI Paciente From Diagnostico.

c) Select Edad, Count(*) From Diagnostico Group By Edad.

d) Select Especialidad, Count(*) From Medico M Join Diagnostico D on [Link] = [Link] Medico

P0. Creación de Tablas Fragmentadas


• La tabla Medico debe ser fragmentada utilizando la técnica de partición por Hash en
el atributo Ciudad. Es necesario tomar decisiones sobre la cantidad de fragmentos.
Posteriormente, la tabla debe ser poblada con datos sintéticos.

• La tabla Diagnostico debe ser particionada en relación con la tabla Medico mediante
Fragmentación Horizontal Derivada. De igual manera, la tabla debe ser poblada con
datos sintéticos.
CS2702 - Base de Datos II Laboratorio 15.1 - Página 2 de 2 Nov 2024

P1. Algoritmos distribuidos localmente (+1.0 en la PC03)


Se le pide diseñar el algoritmo distribuido optimizado para cada consulta. Para este apartado
debe asumir que cada fragmento se encuentra en sitios diferentes, pero en realidad la consulta
se va ejecutar en el mismo servidor:

• Diseñar las sentencias SQL que implemente el algoritmo distribuido optimizado.

• El código debe estar encerrado en un bloque de transacción (begin, commit).

• Para la creación de particiones intermedias use el comando ”CREATE TEMPORARY


TABLE”, estas deben eliminarse una vez entregado el resultado.

• Mostrar el gráfico del plan de ejecución resultante por cada algoritmo distribuido (use
pgAdmin o DBeaver Enterprise).

P2. Algoritmos distribuidos en al menos tres servidores


(+1.0 en la PC03)
• Resolver los algoritmos distribuidos optimizados pero esta vez con al menos tres servi-
dores PostgreSQL, el master y dos workers.

• Los algoritmos deben trabajar sobre los fragmentos asignados en los diferentes servi-
dores. Trabaje con las extensiones postgres fdw y dblink.

– Asegúrese de que los workers ejecuten las sentencias que le corresponden.

• Mostrar el gráfico del plan de ejecución resultante evidenciado la integración de los tres
servidores para responder a las cuatro consultas distribuidas (use pgAdmin o DBeaver
Enterprise).

Nota: El informe debe ser ordenado y convincente para obtener el puntaje adicional. Incluya
los scripts de BD y los gráficos del plan de ejecución como evidencia.

También podría gustarte