Execução Lenta de Instruções

Firebird

12/01/2008

Olá,

recentemente fiz uma migração num sistema feito com access para firebird e estou enfrentando problemas de lentidão em várias instruções SQL, como poderão ver algumas delas são idênticas, tirando é claro as particularidades do BD e por isso não entendo pq a diferença de tempo.

Seguem algumas instruções:

No Firebird:

1.
INSERT INTO Tab_Historicos_Doadores ( Hdo_Doa_Id, Hdo_Tmh_Id, Hdo_Dt, Hdo_Fun_Id, Hdo_Complemento)
SELECT Doc_Doa_Id, 10 AS Motivo, current_date AS Data, 937 AS Usuario, Doc_Id
FROM Tab_Doacoes
WHERE (current_timestamp - doc_data_operacao)>60
AND Doc_Func_Operadora = 937
AND Doc_Status_Doacao=2

2.
DELETE FROM Tab_Doacoes
WHERE (current_timestamp - doc_data_operacao)>60 AND Doc_Func_Operadora = 937 AND Doc_Status_Doacao=2

3.
SELECT Tab_Doadores.Doa_Id
FROM Tab_Doadores INNER JOIN Tab_Doacoes ON Tab_Doadores.Doa_Id = Tab_Doacoes.Doc_Doa_Id
WHERE Tab_Doacoes.Doc_Func_Operadora=937 AND Tab_Doacoes.Doc_Status_Doacao=2 AND Tab_Doadores.Doa_Status=´A´
GROUP BY Tab_Doadores.Doa_Id
HAVING Count(*)<3

No Access:

1.
INSERT INTO Tab_Historicos_Doadores ( Hdo_Doa_Id, Hdo_Tmh_Id, Hdo_Dt, Hdo_Fun_Id, Hdo_Complemento)
SELECT Tab_Doacoes.Doc_Doa_Id, 10 AS Motivo, Now() AS Data, 937 AS Usuario, Tab_Doacoes.Doc_Id
FROM Tab_Doacoes
WHERE ((Now()-[doc_data_operacao])>60)
AND (Tab_Doacoes.Doc_Func_Operadora)= 937
AND (Tab_Doacoes.Doc_Status_Doacao)=2)

2.
DELETE * FROM Tab_Doacoes
WHERE ((Now()-[doc_data_operacao])>60) AND (Tab_Doacoes.Doc_Func_Operadora = 937) AND (Tab_Doacoes.Doc_Status_Doacao=2)

3.
SELECT Tab_Doadores.Doa_Id
FROM Tab_Doadores INNER JOIN Tab_Doacoes ON Tab_Doadores.Doa_Id = Tab_Doacoes.Doc_Doa_Id
WHERE (Tab_Doacoes.Doc_Func_Operadora=937) AND (Tab_Doacoes.Doc_Status_Doacao=2) AND (Tab_Doadores.Doa_Status=´A´)
GROUP BY Tab_Doadores.Doa_Id
HAVING (Count(*)<3)

no Firebird essas 3 instruções levam em média 3,5 segundos para serem executadas e no Access, no máximo 1,5, isso localmente.

E está acontecendo essa lentidão com várias outras instruções;

o que há de errado?

Devo observar q tenho outros sistemas no mesmo pc q rodam normalmente no Firebird.


Fajo

Fajo

Curtidas 0

Respostas

Sremulador

Sremulador

12/01/2008

seus campos estão indexados ?


GOSTEI 0
Fajo

Fajo

12/01/2008

Agora estao sim, problema resolvido! era só falta dos indices, obrigado!!


GOSTEI 0
POSTAR