[firebase-br] RES: Ajuda com select

rodrigo firebase em dominioinf.com.br
Seg Dez 9 11:29:55 -03 2019


Bom dia! Obrigado pela resposta.

Usando sua sugestão já melhorou bastante,

SELECT DISTINCT PV.CODIGO as CODIGO FROM PEDIDOS P
LEFT JOIN PAGTOVENDA PV ON (P.CODIGO=PV.CODIGO)
WHERE P.CONCLUIU = 'S' AND (PV.CONDICAO = 'A Vista' OR PV.CONDICAO = 'Cheque') and (PV.CONCLUIU IS NULL OR PV.CONCLUIU = '') AND
 COALESCE(P.COO,0) > 0 AND coalesce(p.numimpfiscal,0) > 0 and char_length(p.numserieecf) > 0 and
NOT EXISTS (SELECT 1 FROM CAIXA C WHERE C.COO=P.COO AND C.NUMSERIEECF=P.NUMSERIEECF)

PLAN (C INDEX (IDX_CAIXA_COO))
PLAN SORT (JOIN (P INDEX (IDX_PEDIDOS_CONCLUIU), PV INDEX (IDX_PAGTOVENDA_CODIGO)))

Prepare: 0 ms  Execute: 3 s 0 ms  Fetch: 2 s 953 ms

Mas eu gostaria de ver se consigo chegar a menos que um segundo.

Tem mais alguma sugestão?

Grato



Enviado do Email para Windows 10

De: Murilo Furquim
Enviado:segunda-feira, 9 de dezembro de 2019 10:48
Para: FireBase
Assunto: Re: [firebase-br] Ajuda com select

Bom dia.

Eu inverteria a ordem das condicionais do where para deixar as
comparações de varchar por último. Utilizo o Firebird 2.1 e dá
bastante diferença. Também troque o count por not exists para ver se
dá diferença.

Em seg., 9 de dez. de 2019 às 08:10, rodrigo
<firebase em dominioinf.com.br> escreveu:
>
> Bom dia!
>
> Tenho o seguinte select
>
> SELECT DISTINCT PV.CODIGO as CODIGO FROM PEDIDOS P
> LEFT JOIN pagtovenda pv ON (P.CODIGO=PV.CODIGO)
> WHERE P.CONCLUIU = 'S' AND (PV.CONDICAO = 'A Vista' OR PV.CONDICAO = 'Cheque') and (PV.CONCLUIU IS NULL OR PV.CONCLUIU = '') AND
> COALESCE(P.COO,0) > 0 AND coalesce(p.numimpfiscal,0) > 0 and char_length(p.numserieecf) > 0 and
> (SELECT COUNT(*) FROM CAIXA C WHERE C.COO=P.COO AND C.NUMSERIEECF=P.NUMSERIEECF) = 0
>
> E esta tabela tem em torno de 100.000 pedidos esta retornando acima de 4 segundos
>
> PLAN (C INDEX (IDX_CAIXA_COO))
> PLAN SORT (JOIN (P INDEX (IDX_PEDIDOS_CONCLUIU), PV INDEX (IDX_PAGTOVENDA_CODIGO)))
>
> Prepare: 31 ms  Execute: 4 s 828 ms  Fetch: 0 ms
>
> Alguem teria alguma sugestão de como melhorar a performance?
>
> Grato
>
>
>
> ______________________________________________
> 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

______________________________________________
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