Buenas tardes foreros.

Ando intentando reproducir la clausula 'limit' de mysql en el sql del i5. La sentencia para ello da unos resultados de este tipo:

with Pev001 ( aplic_sis, d_aplicacion, accionsis, d_accion, dpt_sis, dpdeno, usr_sis, pldeno, db2__n_ord_) as (

SELECT Pev001.aplic_sis, Pev001.d_aplicacion, Pev001.accionsis, Pev001.d_accion, Pev001.dpt_sis, Pev001.dpdeno, Pev001.usr_sis, Pev001.pldeno, row_number() over( ORDER BY Pev001.aplic_sis asc, Pev001.accionsis asc, Pev001.dpt_sis asc, Pev001.usr_sis asc)
FROM pev001 AS Pev001 WHERE 1 = 1 ORDER BY Pev001.aplic_sis asc, Pev001.accionsis asc, Pev001.dpt_sis asc, Pev001.usr_sis asc )

SELECT Pev001.aplic_sis, Pev001.d_aplicacion, Pev001.accionsis, Pev001.d_accion, Pev001.dpt_sis, Pev001.dpdeno, Pev001.usr_sis, Pev001.pldeno from Pev001 where db2__n_ord_ between 76 and 90 ORDER BY Pev001.aplic_sis asc, Pev001.accionsis asc, Pev001.dpt_sis asc, Pev001.usr_sis asc
;

La sentencia cumple su función. Devuelve los registros 76 al 90. El problema es el rendimiento. Si la ejecuto en Aqua Datastudio, la primera vez me tarda un segundo (pev001 es una vista poco compleja y con muy pocos registros), y las posteriores entre 100 y 250 milésimas (¿porque el optimizador de consultas mejora las siguientes ejecuciones?).

El problema es cuando la empleo con php. Aquí siempre me tardaba en torno a 1 segundo. Me puse a experimentar y cambie la conexión de db2_connect a db2_pconnect, pensando que de esa manera lo que hace que con el datastudio mejore en las siguientes ejecuciones también funcionaría con php. Pero no es así. Al menos no siempre. La mayoría de las veces, al repetir el query (paginar resultados) tarda lo mismo que la primera vez, pero hay veces (a saber por qué) que tras la primera ejecución las siguientes pasan a tardar mucho menos. Por desgracia es más frecuente el caso en que todas las ejecuciones tardan mucho.

¿Alguna idea de por qué se me comporta así o de cómo optimizar la paginación?

Gracias de antemano.

--
Saludos.

Fernando Pérez 

Cerámica Saloni. Dpto. Organización

____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a