1 / 25

Performance en aplicaciones GeneXus. ¿Qué hacer cuando hay problemas?

Performance en aplicaciones GeneXus. ¿Qué hacer cuando hay problemas?. Alexander Wolff (awolff@concepto.com.uy) Marcos Crispino (mcrispino@concepto.com.uy) Concepto. ¿Quiénes somos?. Consultoría y desarrollo de software 10 años de experiencia con GeneXus Certificaci ón ISO 9000

javan
Download Presentation

Performance en aplicaciones GeneXus. ¿Qué hacer cuando hay problemas?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Performance en aplicaciones GeneXus. ¿Qué hacer cuando hay problemas? Alexander Wolff (awolff@concepto.com.uy) Marcos Crispino (mcrispino@concepto.com.uy) Concepto

  2. ¿Quiénes somos? • Consultoría y desarrollo de software • 10 años de experiencia con GeneXus • Certificación ISO 9000 • Reconocimientos • “Early Adopter of New Technology” (2001) • “Mejor Betatester GeneXus” (2000 y 2001) • Bases de conocimiento de más de 6000 objetos y 700 tablas

  3. Objetivos • Presentar opciones para analizar y mejorar la performance en aplicaciones GeneXus. • Comentar la metodología utilizada en algunos casos.

  4. Agenda • Optimizaciones en • GeneXus • Lenguaje de programación • Manejador de base de datos • Metodología • Generalidades • Web panels • Procesos batch

  5. GeneXus – Buenas Prácticas (1) • Modelo de datos • Uso de Subtipos • Índices • For each con filtros • Filtros resueltos en el servidor vs en el cliente: Servidor &aux = sysdate() For each where Att = &aux endfor Cliente For each where Att = sysdate() endfor

  6. GeneXus – Buenas Prácticas (2) • For each que suman o cuentan, utilizar optimizaciones de GeneXus. No genera count() Genera count()

  7. GeneXus – Buenas Prácticas (3) • Programar para que genere joins en el servidor

  8. GeneXus – Preferencias • Delete groups / Agregate groups • Cache de tablas (GX 8.0) • Connect to server: At application startup • Copy table groups

  9. GeneXus – Optimizaciones • Pasaje de valores por parámetro entre los objetos • Uso de arrays o SDTs • Uso de tablas temporales para resolver consultas complejas

  10. Lenguaje de programación • Uso de variables globales • Herramientas específicas del lenguaje • Ejemplo: Coverage logging en Visual Fox Pro • http://www.concepto.com.uy/PetroCSharp/hwnver03.aspx?1,N,0,0,208

  11. DBMS – Plan de ejecución • Disponible en todos los DMBS • Permite • detectar “full scans” sobre tablas grandes • determinar índices que usa el DBMS (no siempre coinciden con los que dice GeneXus) • detectar estadísticas desactualizadas

  12. Falta de índices ( No existe índice por FacFch )

  13. Creando un índice por FacFch..

  14. Estadísticas del DBMS • Optimizador de consultas del DBMS usa estadísticas almacenadas para crear planes de ejecución de sentencias • Las estadísticas se deben actualizar periódicamente para asegurar planes de ejecución buenos • Hay que tener una estrategia de actualización de las estadísticas

  15. Estadísticas desactualizadas

  16. Después de actualizar las estadísticas..

  17. Histogramas • Se usan para mantener disponible distribuciones no uniformes al optimizador de consultas del DBMS

  18. Histogramas • Es necesario el uso de literales en el where del for each

  19. SQL Server Profiler • Permite hacer trace de las sesiones • Que sentencias se envían al DBMS • Cuando empieza a ejecutarse una sentencia, cuando termina • Plan de ejecución de sentencias

  20. Index Tunning Wizard • Dado un trace generado con Profiler y una base de datos: • Lista las consultas mas costosas • Lista los índices utilizados por cada consulta • Recomienda un conjunto de índices a crear, y estima el porcentaje de mejora para cada consulta • Permite crear el conjunto de índices recomendados

  21. Metodología – Generalidades (1) • Revisar las navegaciones • For each varias veces a la misma tabla • For each sin filtros • Navegaciones con tabla extendida

  22. Metodología – Generalidades (2) • Ver consultas en la base de datos • Ejecutar sentencia SQL que genera GeneXus • Ver el plan de ejecución • Utilizar el Index Tunning Wizard para analizar el uso de los índices

  23. Metodología – Web • Uso de paginado para “minimizar” el tamaño de los HTML • Ver el uso de tablas HTML • Tamaño de las imágenes • Analizar log del web server

  24. Metodología – Procesos batch • Por lo general intervienen varios procedures • Optimizar la lectura de datos, pasando valores por parametro y usando arrays • Uso de cache de tablas • Si es posible, generar con un lenguaje “más rápido”, por ejemplo C/SQL.

  25. Performance en aplicaciones GeneXus. ¿Qué hacer cuando hay problemas? Alexander Wolff (awolff@concepto.com.uy) Marcos Crispino (mcrispino@concepto.com.uy) Concepto

More Related