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

Carlos H. Cantu listas em warmboot.com.br
Sex Jan 10 16:51:33 -03 2020


Acredito que se você tiver um indice decrescente no campo ID, a
performance será praticamente a mesma. Faz um teste e retorne aqui.

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

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

CA> select max(M2.ID)...

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

CA> ou

CA> select first 1 M2.ID...

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


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

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



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





Mais detalhes sobre a lista de discussão lista