Entradas

Mostrando las entradas de diciembre, 2011

PiensoPienso: Como mejorar la permformance de este programa?

Tengo una tabla con millones de registros que son de la forma
*Clave Descripcion Fecha
y un webpanel  con una grilla que muestra los registros que cumplen la condicion:
Clave = &Clave when not &Clave.isEmpty(); Descripcion like &Descripcion when not &Clave.IsEmpty(); &FechaInicial <= Fecha and Fecha <= &FechaFinal ;

En la pantalla se muestran la cantidad de registros que tiene le grilla y en los eventos tengo:
&TotPag = Grid.PageCount if Grid.Rows > 0 if Grid.PageCount <= 1 Paginado.Visible = 0 //Muestro botones de  paginado else if &nroPag = 1 anterior.Enabled = 0 primero.Enabled = 0 endif if &nroPag = Grid.PageCount siguiente.Enabled = 0 endif endif else Paginado.Visible = 0 endif
Como mejorarían la performance de este programa?

Ventajas de programación basada en modelos : Cambios al migrar a GeneXus X ev2.

Estaba revisando un tema de performance en la base de datos, de una aplicación generada con GeneXus 9.0. La misma no tenia problemas de performance grande, pero los administradores de la base de datos pedían que se utilizara BINDING para mejorar el ratio del cache de sentencias en la base de datos. Para hacer pruebas cree una KB en 9.0 con dos tablas (Clientes y Facturas) y un webpanel con una grilla de 10 renglones, que traia algunos datos de las tablas con un join, con condiciones con un when y ordenadosLa misma generaba la sentencia:SELECT T1.[FactImporte], T1.[FactId], T1.[FacFecha], T2.[CliNom], T1.[CliId]
FROM ([FACTURA] T1 WITH (FASTFIRSTROW NOLOCK) INNERJOIN [CLIENTE] T2 WITH (NOLOCK) ON T2.[CliId] = T1.[CliId])
WHERE (T1.[FactImporte] > 100)
ORDERBY T1.[FactImporte] DESC
Para hacer pruebas, también la migre a la GeneXus X Evolution 2 y generó la sentencia.
SELECT * FROM
(
SELECT T1.[FactImporte], T1.[FactId], T1.[FacFecha], T2.[CliNom], T1.[CliId], ROW_NUMBER()
OVER ( ORDERB…