Duvida Rownum - Oracle

Bom dia pessoal…
Não sei se estou postando no lugar certo até pq minha duvida é sobre uma consulta SQL.
No meu trabalho me deparei com um problema. Eu tenho que listar todos os movimentos do fechamento de caixa na ordem da maior e menor data Ok ? só que o problema que os select de onde trabalho todos utilizam Rownum, eles capturam de 100 em 100 registros.
O problema é o seguinte, como capturando 100 registros e dando um DESC sem ter todo o resultado final, ele esta pegando os 100 primeiro e dando um DESC, onde ele deveria pegar todos os registros e depois dar um Desc. Quando eu tirei o Rownum funcionou perfeitamente só que cai muito a performance.

Vou colocar mais ou menos como se encontra o select:
SELECT * FROM A_FISMCTRL WHERE ROWNUM > 100 AND DBA_KEYCTRL_SQ >= X ORDER BY DBA_CTR_DATA DESC

Se vocês poderem me ajudar, Grato !

Então porque não ordena primeiro e depois aplica o filtro:

SELECT *
FROM (SELECT *
      FROM A_FISMCTRL
      ORDER BY DBA_CTR_DATA DESC)
WHERE ROWNUM > 100
      AND DBA_KEYCTRL_SQ >= X