Performance en aplicaciones GeneXus. - PowerPoint PPT Presentation

About This Presentation
Title:

Performance en aplicaciones GeneXus.

Description:

determinar ndices que usa el DBMS (no siempre coinciden con los que dice GeneXus) ... Optimizador de consultas del DBMS usa estad sticas almacenadas para crear planes ... – PowerPoint PPT presentation

Number of Views:552
Avg rating:3.0/5.0
Slides: 26
Provided by: marcosc5
Category:

less

Transcript and Presenter's Notes

Title: Performance en aplicaciones GeneXus.


1
Performance en aplicaciones GeneXus. Qué hacer
cuando hay problemas?
  • Alexander Wolff (awolff_at_concepto.com.uy)
  • Marcos Crispino (mcrispino_at_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.as
    px?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
FacFch Count
2004-06-01 600900
2004-06-03 600999
2004-06-05 99
2004-06-07 299
2004-06-08 199700
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_at_concepto.com.uy)
  • Marcos Crispino (mcrispino_at_concepto.com.uy)
  • Concepto
Write a Comment
User Comments (0)
About PowerShow.com