[firebase-br] RES: Função com melhor desempenho: Max ou First 1

felix em solsistemas.com felix em solsistemas.com
Qua Jan 8 09:02:30 -03 2020


Bom dia! Existe algum motivo para uso de generator não ser possível?


www.solsistemas.com
Francisco Felix


-----Mensagem original-----
De: lista <lista-bounces em firebase.com.br> Em nome de Carlos Andrade
Enviada em: quarta-feira, 8 de janeiro de 2020 01:16
Para: lista em firebase.com.br
Assunto: [firebase-br] Função com melhor desempenho: Max ou First 1

Olá! No meu Select, para se obter o maior ID, qual destas funções seria mais
apropriada e que utilizaria menos recurso de processador/memória?

"select max(M2.ID)"

select M1.SALDO from CONTAS_MOV M1 where (M1.ID = (select max(M2.ID) from
CONTAS_MOV M2 where (M2.DATA <= current_date) and (M2.ID_EMP = 1) and
(M2.TIPO_MOV = 1)))

ou

"select first 1 M2.ID"

select M1.SALDO from CONTAS_MOV M1 where (M1.ID = (select first 1 M2.ID from
CONTAS_MOV M2 where (M2.DATA <= current_date) and (M2.ID_EMP = 1) and
(M2.TIPO_MOV = 1) order by M2.ID desc))


Eu tenho em mente que a função "max" é mais nativa, mas também que ela pode
contar vários registros até retornar o maior. Eu não sei o impacto que isso
causaria numa tabela com milhões de registros.

Já o "first 1" pode retornar de "cara" o primeiro registro, só que para ele
funcionar desta forma, eu tenho que utilizar "order by ID desc". 
Acredito que assim eu não estarei utilizando o índice do campo por ser uma
PK Ascending.


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br Para
saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas:
http://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista