giovedì 24 ottobre 2013

Oracle paging speed

Qui di seguito si riporta una tecnica di come ottimizzare una query con paginazione.
In particolare il tempo di esecuzione è veloce.
Il parametro 1*20 indica la pagina (1) per il numero dei record (20 per ogni estrapolazione) mentre la parte 1-1 il numero della pagina in cui si trova.




SELECT * FROM
(
    SELECT a.*, rownum r
    FROM
    (
    SELECT * FROM NomeTabella WHERE Campo = 'valore' order by campo desc
     
    ) a
    WHERE rownum < ((1 * 20) + 1 )
)
WHERE r >= (((1-1) * 20) + 1)

Nessun commento: