Skip to content

DB Performance es un proyecto enfocado en analizar, monitorear y optimizar el rendimiento de bases de datos. Este repositorio contiene herramientas, scripts o configuraciones diseñadas para evaluar métricas críticas, identificar cuellos de botella y proponer mejoras en el desempeño de sistemas basados en bases de datos.

Notifications You must be signed in to change notification settings

alejandrosierraariasDev/db_performance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Análisis de Rendimiento de Bases de Datos - Antes y Después de Mejoras

Python PostgreSQL License


📌 Propósito

Este proyecto permite realizar un análisis comparativo del rendimiento de una base de datos PostgreSQL antes y después de implementar mejoras. Está diseñado para:

  • Medir el impacto de las optimizaciones en consultas críticas
  • Identificar cuellos de botella en el rendimiento
  • Validar la efectividad de los cambios realizados
  • Generar informes detallados para la toma de decisiones

📋 Resumen Técnico

El proyecto utiliza Python, psycopg2, pandas y matplotlib para:

  1. Ejecutar consultas SQL almacenadas en archivos
  2. Medir tiempos de ejecución y uso de recursos
  3. Analizar índices utilizados en cada consulta
  4. Generar informes comparativos con visualizaciones
  5. Seguir tendencias de rendimiento a lo largo del tiempo

👉 El resultado es un informe detallado que cuantifica la mejora de rendimiento y proporciona información valiosa para optimizaciones futuras.


✨ Características Clave

🔍 Análisis de Consultas

  • Ejecución de consultas SQL almacenadas en archivos
  • Medición precisa de tiempos de ejecución
  • Conteo de filas procesadas
  • Identificación de índices utilizados

📈 Análisis Comparativo

  • Comparación lado a lado de métricas antes/después
  • Cálculo de porcentajes de mejora
  • Generación de gráficos comparativos
  • Seguimiento de tendencias temporales

📊 Reportes Avanzados

  • Informe detallado en formato Markdown
  • Gráficos de rendimiento comparativo
  • Análisis de uso de índices
  • Tendencias de rendimiento a lo largo del tiempo

🛠️ Facilidad de Uso

  • Configuración centralizada
  • Estructura de proyecto clara
  • Código modular y documentado
  • Fácil integración con flujos de trabajo existentes

📂 Estructura del Proyecto

Directorio de Salida (/output)

El directorio output/ contiene todos los resultados generados por las pruebas de rendimiento:

  • before_results.csv: Resultados de las pruebas ejecutadas antes de las mejoras
  • after_results.csv: Resultados después de implementar las optimizaciones
  • historical_results.csv: Historial completo de todas las ejecuciones para análisis de tendencias
  • performance_comparison.png: Gráfico comparativo visual de los resultados

Ejemplo de Gráfico de Comparación

Comparativa de Rendimiento

Figura 1: Comparación visual del rendimiento antes y después de las mejoras

Cada vez que ejecutes las pruebas, estos archivos se actualizarán automáticamente, permitiéndote hacer un seguimiento del rendimiento a lo largo del tiempo.

/proyecto_db_performance
├── requirements.txt             # Dependencias de Python
├── scripts/
│   ├── config.py               # Configuración de conexión a la BD
│   ├── performance_test.py     # Script principal de medición
│   └── report_generator.py     # Generador de informes
├── queries/                    # Consultas SQL organizadas
│   ├── antes/                  # Consultas originales (antes de mejoras)
│   └── despues/                # Consultas optimizadas (después de mejoras)
├── data/
│   └── query_map.json          # Mapeo de consultas para comparativa
└── output/                     # Resultados e informes
    ├── before_results.csv      # Resultados iniciales
    ├── after_results.csv       # Resultados posteriores
    ├── historical_results.csv  # Historial de ejecuciones
    └── performance_comparison.png  # Gráfico comparativo

Descripción de Archivos Importantes

  • scripts/performance_test.py:

    • Ejecuta las consultas SQL y mide su rendimiento
    • Registra métricas de tiempo, filas procesadas y uso de índices
    • Almacena resultados en archivos CSV
  • scripts/report_generator.py:

    • Genera informes comparativos en formato Markdown
    • Crea visualizaciones de rendimiento
    • Analiza tendencias a lo largo del tiempo
  • data/query_map.json:

    • Define las consultas a ejecutar y sus metadatos
    • Mapea consultas "antes" con sus equivalentes "después"

🚀 Guía de Uso Rápido

🔧 Requisitos Previos

  • Python 3.8 o superior
  • PostgreSQL 10 o superior
  • Dependencias del proyecto: pip install -r requirements.txt

🔄 Flujo de Trabajo

1️⃣ Fase Inicial: Análisis de Línea Base

# Ejecutar pruebas en el estado actual (antes de mejoras)
python -m scripts.performance_test antes

2️⃣ Fase de Optimización

  • Implementar mejoras en la base de datos
  • Optimizar consultas, índices y configuración
  • Documentar cambios realizados

3️⃣ Fase de Validación

# Ejecutar pruebas después de las mejoras
python -m scripts.performance_test despues

4️⃣ Generación de Informe

# Generar informe comparativo
python -m scripts.report_generator

📊 Interpretación de Resultados

Los archivos generados en el directorio output/ te permitirán analizar:

  1. Resultados Detallados (before_results.csv y after_results.csv):

    • Tiempos de ejecución de cada consulta
    • Número de filas procesadas
    • Índices utilizados
    • Tendencias de rendimiento
  2. Análisis Histórico (historical_results.csv):

    • Evolución del rendimiento a lo largo del tiempo
    • Identificación de patrones o regresiones
    • Comparativa entre múltiples ciclos de optimización
  3. Visualización Gráfica (performance_comparison.png):

    • Comparación visual entre el estado inicial y el optimizado
    • Identificación rápida de mejoras o problemas
    • Gráfico generado automáticamente con cada ejecución

El informe generado incluirá:

  • Comparación de tiempos de ejecución
  • Análisis de uso de índices
  • Tendencias de rendimiento
  • Recomendaciones de optimización

🔄 Ejecuciones Posteriores

Cada vez que ejecutes las pruebas, los resultados se agregarán al historial, permitiendo:

  • Seguimiento de tendencias a largo plazo
  • Análisis del impacto de optimizaciones incrementales
  • Identificación de regresiones de rendimiento

About

DB Performance es un proyecto enfocado en analizar, monitorear y optimizar el rendimiento de bases de datos. Este repositorio contiene herramientas, scripts o configuraciones diseñadas para evaluar métricas críticas, identificar cuellos de botella y proponer mejoras en el desempeño de sistemas basados en bases de datos.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages