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!
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!
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+
Não sei se o * é o mais rápido (sei que não é a melhor pratica).
Eu usaria:
select ID, NOME, IDADE from CLIENTES
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.

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.
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
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
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.