[firebase-br] usando Fb2.5+win8.1->fugindo aos JOIN *** empre que possam ***
Mário Reis
secretariadogeral em acra.pt
Seg Maio 16 21:46:10 -03 2016
Cantú,
Provavelmente nada disto será novo para Você os mais experimentados, mas
tinha uma Store Procedure que me listava um ficheiro master de 5000
apenas com a qual fazia um:
For
SELECT
ID,
etc....
FROM cliente c1
INNER JOIN PESSOAS P1 ON P1.PESSOA_ID=c1.cliente_ID
INNER JOIN MORADAS M1 ON M1.MORADA_ID=P1.PESSOA_ID
INNER JOIN DISTRITO D1 ON D1.DD=M1.DD
INNER JOIN CONCELHO C1 ON (C1.DD=M1.DD AND C1.CC=M1.CC )
INNER JOIN FREGUESIA F1 ON (f1.DD=M1.DD AND f1.CC=M1.CC AND
f1.FF=m1.FF)
INNER JOIN CP7Postal C7 ON C7.CP7_ID=M1.CP7_ID
WHERE
... condições ...
into :ID ...lista de out_put Do
begin
mais uns selects ...Sum(Valor) .. Group By ID para ficheiro de
detalhes
calculando dívidas / pagamentos etc...
end;
tudo somado no loclahost nove a doze minutos.. remotamente 12* 3, 4 ou 5
dependende da qualidade da rede que oscila bastante.
Bem assim não servia as minhas necessidades
Então parti os JOINS por multiplos select ... From <Cada Ficheiro>
into...carregando os parametros de out_put.
Bem o resultado(velocidade) é qualquer coisa espantosa.
No localhost o out_put é instantâneo e remotamente varia entre 4 e 30
segundos! Para nove minutos nem é preciso dizer-se mais nada...
Nas ligações só uso PK e FK.
Bom não sei se isto não merecerá uma reflexão já que tratando de INNER
JOIN por chave indexadas o resultado deveria ser muito aproximado.
Estarei enganadao?! Então porquê?
Obrigado
Mais detalhes sobre a lista de discussão lista