[firebase-br] RES: Comando Lento

Alysson Gonçalves de Azevedo agalysson em gmail.com
Ter Jun 10 19:59:23 -03 2014


Só pra saber, não dá pra vc fazer uma procedure (retornando uma tabela) ao
invés da view?
Pq assim, você poderia fazer um select só, trazendo os 3 últimos
movimentos, e então montar o retorno da procedure com as 3 datas em campos
diferentes.

Acredito que isso melhoraria drasticamente a performance, independente de
índices e da quantidade de movimentações na tabela.



Alysson Gonçalves de Azevedo

"Anarcho-syndicalism is a way of preserving freedom." - Monty Python


Em 10 de junho de 2014 17:05, T.F - Terra <thgfragoso em terra.com.br>
escreveu:

> Valeu Pessoal,
>
> O Comando do Matheus ficou mais rapido pois vou usar em uma view.
>
> Obrigado.
>
> Abcs
>
> Thiago Fragoso
>
> -----Original Message-----
> From: lista [mailto:lista-bounces em firebase.com.br] On Behalf Of Matheus
> Georg Mathias(Priori)
> Sent: terça-feira, 10 de junho de 2014 16:01
> To: 'FireBase'
> Subject: [firebase-br] RES: Comando Lento
>
> Cara, sem muitas delongas eu fiz um sql rapidinho da uma testadinha ai pra
> ver no que dá....
>
>
> select
>      c.cliente,
>      min((select first 1 m.data from movimento m where c.cliente =
> m.cliente
>
>                                                   and m.tipo_operacao = 'S'
>                                                    and m.cancelada = 'F'
>                                                 order by m.data desc)) as
> data_1,
>
>      min((select first 1 skip 1 m.data from movimento m where c.cliente =
> m.cliente
>                                                   and m.tipo_operacao = 'S'
>                                                    and m.cancelada = 'F'
>                                                  order by m.data desc)) as
> data_2,
>
>      min((select first 1 skip 2 m.data from movimento m where c.cliente =
> m.cliente
>                                                   and m.tipo_operacao = 'S'
>                                                    and m.cancelada = 'F'
>                                                  order by m.data desc)) as
> data_3
>
>
>
>     from clientes c
>
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de T.F - Terra
> Enviada em: terça-feira, 10 de junho de 2014 15:53
> Para: 'FireBase'
> Assunto: [firebase-br] Comando Lento
>
> Boa tarde!
>
>
>
> Estou fazendo um comando para retornar as 3 ultimas datas de movimentos de
> um determinado cliente , porem o comando quando rodado para todos clientes
> fica muito lento, alguem tem alguma sugestao?
>
>
>
> Obrigado
>
>
>
> Thiago Fragoso
>
>
>
>
>
> select
>
>      c.cliente,
>
>      min((select first 1 m.data from movimento m where c.cliente =
> m.cliente
> order by m.data desc)) as data_1,
>
>      min((select first 1 skip 1 m.data from movimento m where c.cliente =
> m.cliente order by m.data desc)) as data_2,
>
>      min((select first 1 skip 2 m.data from movimento m where c.cliente =
> m.cliente order by m.data desc)) as data_3
>
>
>
>     from clientes c
>
>
>
>     inner join movimento m on m.cliente = c.cliente
>
>
>
>     where m.tipo_operacao = 'S'
>
>     and m.cancelada = 'F'
>
>     --and c.cod_cliente = '16'
>
>
>
>     group by cliente
>
> ______________________________________________
> 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://firebase.com.br/pesquisa
>
>
> ______________________________________________
> 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://firebase.com.br/pesquisa
>
>
> ______________________________________________
> 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://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista