Otimizando Query’s usando Rownum, top, limit e first. Em Oracle, SQL server, MYSQL, PostgreSQL e Firebird.

Olá, amigos webianos!

Hoje vou passa um função simples, que se usada com sabedoria poderá trazer velocidade e desempenhos para suas aplicações.

Qual função? O “Limit”, limitador de registros do Select de uma query no banco de dados.

  • Quando utilizar?

Imagina uma grid que possua varios registros, acima de 2000 registros, tais como: lista de produtos, busca/pesquisa/filtros em geral, clientes, usuarios ou logs.

  • Para que fazer um select completo buscando todos os dados se realmente não será utilizado?

Muitos programadores não preocupados com o desempenho fazer os selects e tratam a exibição na propria aplicação. Porém eles esquecem o “ponto criticos” dos sistemas, que são transmissão de dados e banco de dados.

Imagine 5mil registros sendo transmitidos na rede? imagine o processamento do banco ao executar 5mil registros? Memoria?

Pra que servirá 5mil registros, se na tela do usuario só aparecerá 100 registros?

Otimize suas querys para retornar um número especifico de registro que realmente será utilizada.

Cada banco de dados utiliza uma Sintaxe diferente, porém todos servem para a mesma coisa: Limitar registros.

No Oracle usa ROWNUM, que fica no WHERE da query.
Exemplo: Select * from tbUsuarios where rownum <=10;

No SQL SERVER usa TOP, que fica no SELECT da query.
Exemplo: Select Top 10 * from tbUsuarios;

No MYSQL e PostgreSQL usa LIMIT, que fica no final da query.
Exemplo: Select * from tbUsuarios LIMIT 0, 10;

No FIREBIRD usa FIRST, que fica no SELECT da query.
Exemplo: Select FIRST 10 SKIP 20 * from tbUsuarios;

Espero ter ajudado, abrindo um novo “leque” de utilização do LIMIT nas suas querys. Eu tambem gosto de utilizar os LIMIT’S em testes simples, que não necessitam de toda carga de dados. Como por exemplo configurações de styles e dados num RowDataBound (gridview).

Gostou? Divulgue… Dúvidas? Comente…

Abraços!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s