[firebase-br] usando Fb2.5+win8.1->fugindo aos JOIN *** empre que possam ***
Carlos H. Cantu
listas em warmboot.com.br
Ter Maio 17 08:51:18 -03 2016
Possivelmente o PLAN do Firebird não usou os mesmos indices comparado
com quando vc dividiu em varios "for selects".
Em operações muito complexas, é comum termos algum ganho de
performance ao "quebrar" o select usando uma lógica específica.
[]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
MR> Cantú,
MR> Provavelmente nada disto será novo para Você os mais experimentados, mas
MR> tinha uma Store Procedure que me listava um ficheiro master de 5000
MR> apenas com a qual fazia um:
MR> For
MR> SELECT
MR> ID,
MR> etc....
MR> FROM cliente c1
MR> INNER JOIN PESSOAS P1 ON P1.PESSOA_ID=c1.cliente_ID
MR> INNER JOIN MORADAS M1 ON M1.MORADA_ID=P1.PESSOA_ID
MR> INNER JOIN DISTRITO D1 ON D1.DD=M1.DD
MR> INNER JOIN CONCELHO C1 ON (C1.DD=M1.DD AND C1.CC=M1.CC )
MR> INNER JOIN FREGUESIA F1 ON (f1.DD=M1.DD AND f1.CC=M1.CC AND
MR> f1.FF=m1.FF)
MR> INNER JOIN CP7Postal C7 ON C7.CP7_ID=M1.CP7_ID
MR> WHERE
MR> ... condições ...
MR> into :ID ...lista de out_put Do
MR> begin
MR> mais uns selects ...Sum(Valor) .. Group By ID para ficheiro de
MR> detalhes
MR> calculando dívidas / pagamentos etc...
MR> end;
MR> tudo somado no loclahost nove a doze minutos.. remotamente 12* 3, 4 ou 5
MR> dependende da qualidade da rede que oscila bastante.
MR> Bem assim não servia as minhas necessidades
MR> Então parti os JOINS por multiplos select ... From <Cada Ficheiro>
MR> into...carregando os parametros de out_put.
MR> Bem o resultado(velocidade) é qualquer coisa espantosa.
MR> No localhost o out_put é instantâneo e remotamente varia entre 4 e 30
MR> segundos! Para nove minutos nem é preciso dizer-se mais nada...
MR> Nas ligações só uso PK e FK.
MR> Bom não sei se isto não merecerá uma reflexão já que tratando de INNER
MR> JOIN por chave indexadas o resultado deveria ser muito aproximado.
MR> Estarei enganadao?! Então porquê?
MR> Obrigado
MR> ______________________________________________
MR> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
MR> Para saber como gerenciar/excluir seu cadastro na lista, use:
MR> http://www.firebase.com.br/fb/artigo.php?id=1107
MR> Para consultar mensagens antigas:
MR> http://www.firebase.com.br/pesquisa_lista.html
Mais detalhes sobre a lista de discussão lista