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

Danilo danrgomes em gmail.com
Seg Jan 20 10:27:59 -03 2020


Olá

Olha .. se pensar na teoria .. um order by vai sempre obrigar o SGBD a
utilizar uma algoritmo de ordenação no seu SGBD, o que sempre é uma rotina
mais "lenta" e ainda até onde eu sei, o first, simplesmente não exibe os
outros registros, mas ele tem que saber qual é o primeiro, assim ele
carrega os outros mas não exibe. Já o count, desde que faça em cima somente
somente de um campo, por mais que ele seja indexado, ñão haverá
"movimentação de posição de dados" para exibição.
Assim pensando lá na disciplina de Estrutura de Dados do seu professor
chato, tecnicamente o count deve ser mais rápido. Ahh mais uma coisa.. para
fazer sort deve haver um count para ir ornando.

Danilo

Em sex., 10 de jan. de 2020 às 16:52, Carlos H. Cantu <
listas em warmboot.com.br> escreveu:

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