Ir para o conteúdo
ou

Software livre Brasil

 Voltar a SAVEPOINT
Tela cheia

LIMIT e OFFSET no Oracle

9 de Abril de 2013, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 291 vezes

Este artigo foi escrito por telles

Outra coisa pentelha no Oracle, fazer paginação de registros.

Vamos ver 2 métodos aqui. O primeiro é o definido pelo mago do Oracle, o Tom Kyte, do Ask Tom:

SELECT * FROM (
  SELECT a.*, ROWNUM rnum FROM (
    SELECT * FROM tabela_enorme ORDER BY campo_indexado
  ) a WHERE ROWNUM <= 61200
) WHERE rnum >= 61000
;
...
...
...
Decorrido: 00:00:31.39

Agora outro método utilizando algo que eu realmente adoro, Window Functions:

SELECT * 
FROM (SELECT row_number() OVER (ORDER BY campo_indexado) myrow, p.* FROM tabela_enorme) 
WHERE myrow BETWEEN 91000 AND 91200;
...
...
...
Decorrido: 00:00:29.34

Ou seja, utilizando Window Functions você tem uma sintaxe mais elegante e compacta e ainda ganha no desempenho. Para variar, a solução mais simples é a melhor.

Claro… eu ainda espero que alguém na Oracle tenha o bom senso de implementar o LIMIT e OFFSET, assim como uma infinidade de outras coisas que tornam a vida do desenvolvedor mais simples.

O artigo LIMIT e OFFSET no Oracle apareceu primeiro em Savepoint.


Fonte: http://savepoint.blog.br/limit-e-offset-no-oracle/

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.