Publicidad

miércoles, 18 de julio de 2018

Mejorar Desempeño de Odoo 8, 9 ,10 y 11 con PostgreSQL 10

Odoo Consultants

Mejorar el Desempeño de Odoo y Optimizar Consultas a la Base


Con la llegada de PostgreSQL 10, el rendimiento de Odoo puede aumentar beneficiandose de las nuevas funcionalidades como las funciones de consultas paralelas. Desde el lado de PostgreSQL, esta es una excelente noticia porque esto significa que muchas consultas SELECT operadas del lado del ORM de Odoo se pueden ejecutar mas rapido de lo que solian ser. Dentro de las ventajas encontramos:

  • Resultados mas rapidos en las consultas ( PostgreSQL mejora el desempeño hasta 32 veces mas rapida la respues que en versiones como 9.5)
  • Mejora los modos de Indexacion GIN, BRIN y B-tree.
  • Mejora la compresión de filas y tablas.
Sin embargo, cuando miramos el desempeño de Odoo, debemos entender que Odoo no tiene la capacidad para  utilizar estas funcionalidades de forma eficiente, ya que lo anterior implica 2 factores principales que estan ausentes en Odoo:

  • Una estrategia de indexación evolucionada orientada de acuerdo a los contenidos (Odoo solo maneja el tipo B-tree como estandar)
  • Capacidad para optimizar el Analisis de Indexación ( debe hacerse del lado de PostgreSQL y no es accesible del lado de Odoo)
En general, el cambiar las versiones de anteriores de PostgreSQL para migrar a las nuevas versiones sin realizar ajustes adecuados en su motor de base de datos y sus modelos de datos no proporcionará ninguna mejora visible en términos de rendimiento y tiempos de consulta / respuesta.

Puedes verificar la relevancia y efiniencia del Indice desde el lado de PostgreSQL ejecutando el siguiente escript:


SELECT
schemaname,
relname,
idx_scan,
seq_scan,
cast(idx_scan AS numeric) / (idx_scan + seq_scan) AS idx_scan_pct
FROM pg_stat_user_tables WHERE (idx_scan + seq_scan)>0 ORDER BY idx_scan_pct;
Esto ayudara a mejorar la eficiencia de la indexación  en comparación con la lectura secuencial. Por supuesto, la idea es reducir los escaneos secuenciales tanto como sean posible, ya que consumen mas recursos y generan mas bloqueos de tablas / memoria / consumo de Procesamiento (CPU).

Fuente de Consulta:

0 comentarios:

Publicar un comentario