Dúvida Banco de Dados

7 respostas
criador

Bom dia.

Tenho uma dúvida.

Seria mais rápido utilizar “select ID, NOME, IDADE from CLIENTES” ou select * from CLIENTES" ?

Ou seja, utilizar o * ou o nome das colunas ?

Abraço!

7 Respostas

J

Olha mais rapido é usar *, porem voce
não consiguira especificar quais colunas
voce quer q retorne…

No caso se vc for fazer juncao de tabelas,
use os nomes do campo.

t+

bestlinux

Não sei se o * é o mais rápido (sei que não é a melhor pratica).

Eu usaria:

select ID, NOME, IDADE from CLIENTES

brunosales85

Bom, depende
o * nesse caso significa pra vc escolher todos as colunas,
se ID, NOME, IDADE from CLIENTES forem todas as colunas entao eh a mesma coisa,
porém se houve mais colunas, serao retornadas pelo *, o que prejudica na otimização do sql.

:smiley:

andreiribas

Dependendo da implementação do BD, mas geralmente é selecionado todos os campos da tabela e depois eles são filtrados pelo que você quer.
O select * acho que é mais custoso para devolver depois, utiliza mais memória e banda para transferir os dados até a aplicação.

I

O * como disse o andreiribas é realmente mais custoso para o banco trazer, principalmente se vc quer trazer 4 colunas em uma tabela com 50 colunas, isso acaba sendo mais lento. Outra coisa também é que em minha opinião seu código fica muito mais fácil de entender colocando todos os campos, assim vc tem controle do que exatamente está retornando.

[]´s

Junior

M

Vamos chover no molhado aqui no tópico …

Creio q com o * o desempenho reduz, uma vez que q tds as outras colunas da tabela (q a princípio nao interessam nesta consulta) serão carregadas resultando em um, mesmo q pequeno, maior consumo d memória.

Valeu

fabim

Depende.
Pra essas e outras coisas existe o Explain Plain no Oracle (nao falo dos outros, nao conheco nada fora Oracle)

Vc deve analizar tanto o custo da query, qto o volume de dados que ela traz.

Criado 13 de agosto de 2009
Ultima resposta 13 de ago. de 2009
Respostas 7
Participantes 8