He realizado muchas informes tanto en reporting services, crystal report y los estándar de AX, y estaba realizando una consulta en AX para los saldos a fecha.
En principio los había calculado sobre el campo AmountMST, pero el cliente me lo ha pedido sobre el campo AmountCur. Para optimizar hice una consulta directa sobre SQL server y luego cargaba los datos sobre una tabla temporal para que luego ellos pudieran exportarlo a Excel con la funcionalidad estándar.
Mi sorpresa ha sido mayúscula, porque incluso haciendo la misma consulta en SQL Server pero sobre diferentes campos la diferencia de rendimiento ha sido enorme.
Desde SQL Server aplicando los mismos filtros, es decir sobre la compañía he calculado el sumatorio en la ledgertrans del campo AmountMST y del campo AmountCur, y para el AmountCur ha tardado 31 segundos y para el AmountMST 7. Imaginaros si tengo que buscar el saldo para cada una de las cuentas por fecha lo que ha podido tardar.
Hasta ahora no me había percatado de esta diferencia tan grande en la búsqueda sobre la misma tabla, con el mismo filtro en el where, pero sumariando sobre diferentes campos, y a nivel de SQL ambos campos reales.
[AMOUNTMST] [numeric](28, 12) NOT NULL,
[AMOUNTCUR] [numeric](28, 12) NOT NULL,
Alguién sabe a que puede ser debido esta diferencia. Yo estoy investigando, en cuanto de con ello os lo comunicaré
Etiquetas: AmountCur, AmountMST, LedgerTrans, SQL, Server, X++
Permalink Responder para José Antonio Estevan el octubre 11, 2010 a las 6:32pm 
Permalink Responder para José Antonio Estevan el octubre 14, 2010 a las 10:05pm Bienvenido a
El Rincón Dynamics
© 2012 Creado por Antonio Gilabert.