[firebase-br] RES: Pesquisa Muito lenta
.:: Eder Sousa ::.
edersousa em gmail.com
Ter Jan 22 17:10:29 -03 2008
Zottis.. eu tive um problema parecido, e resolvi fazendo um backup/restore
... soh que no meu caso era muiiitos registros.
-----Mensagem original-----
De: lista-bounces em firebase.com.br
[mailto:lista-bounces em firebase.com.br]Em nome de Zottis
Enviada em: terça-feira, 22 de janeiro de 2008 14:47
Para: lista em firebase.com.br
Assunto: [firebase-br] Pesquisa Muito lenta
Pessoal, tenho Select que Rodando pelo IBexpert, leva uns 6 segundos, e
quando roda no dephi 7 com MDO, e FB 2.0.3 leva uns 2 MINUTOS isso em um
Cliente e Não são muitos registros, o interessante é que eu tenho um outro
banco com a mesma estrutura; Que não demora.
O SQL é este:
With Busca do
Begin
Close;
SelectSQL.Clear;
SelectSQL.Add(' select CR.ContaNo, CR.ClienteNo,
CR.Data,CR.Vencimento, CR.Saldo,CR.DIASATRASO, ');
SelectSQL.Add(' CR.SITUACAO, CR.VLRJUROS, CR.Valor, CR.RegistroNo,
CR.Pago, CR.TotalPago, CR.DuplicataNo, ');
SelectSQL.Add(' CR.desconto, CR.UsuarioNo, CR.DATAPGTO, CR.Juros,
CR.OBS, CR.PedidoNo, CR.DESPESAS_EXTRAS, ');
SelectSQL.Add(' CR.dataPedido, CR.NF, CR.LojaNo, CR.TotalPedido,
CR.Comprador, CR.FaturaNo, CR.Desconto_Taxa, ');
SelectSQL.Add(' C.RazaoSocial as RazaoSocial, C.fone as Fone,
C.Celular as Celular, C.fax as Fax, ');
SelectSQL.Add(' C.Endereco as Endereco, C.CasaNO as CasaNo,
C.bairro as Bairro, C.Cep as CEP, ');
SelectSQL.Add(' C.cidade as Cidade, C.Pais as Pais, C.NomeFantasia
as nomeFantasia, C.UF as UF, ');
SelectSQL.Add(' C.CNPJ as CNPJ, C.complemento as complemento,
C.contato as contato, C.email as email, ');
SelectSQL.Add(' C.CPF as CPF ');
SelectSQL.Add(' from CtaRec CR ,Clientes C where CR.ClienteNo =
C.ClienteNo and CR.Deletado = ''N'' and');
if radioGroup1.ItemIndex = 1 then
begin
SelectSQL.Add(' CR.Pago = ''S'' and');
end else
if radioGroup1.ItemIndex = 2 then
begin
SelectSQL.Add('CR.Pago =''N'' and');
end;
SelectSQL.Add(' CR.Vencimento between :VarDataI and :VarDataF and
');
SelectSQL.Add(' CR.Clienteno = :VarClienteNo');
SelectSQL.Add(' order by CR.Vencimento, CR.PedidoNo, CR.ContaNo
');
ParamByName('VarDataI').AsDate:=Data1.Date;
ParamByName('VarDataF').AsDate:=Data2.Date;
ParamByName('VarClienteNo').AsInteger := Cliente_Atual;
Prepare;
Open;
End;
Os Indices
/**** Foreign Keys
****/
ALTER TABLE CTAREC ADD CONSTRAINT FK_CTAREC_CLI_NO FOREIGN KEY (CLIENTENO)
REFERENCES CLIENTES (CLIENTENO) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE CTAREC ADD CONSTRAINT FK_CTAREC_LJ_NO FOREIGN KEY (LOJANO)
REFERENCES EMPRESA (LOJANO) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE CTAREC ADD CONSTRAINT FK_CTAREC_REG_NO FOREIGN KEY (REGISTRONO)
REFERENCES REGISTROS (REGISTRONO);
/**** Indices
****/
CREATE INDEX CTAREC_IDX_DATA ON CTAREC (DATA);
CREATE INDEX CTAREC_IDX_DELETADO ON CTAREC (DELETADO);
CREATE INDEX CTAREC_IDX_PAGO ON CTAREC (PAGO);
CREATE INDEX CTAREC_IDX_VENC ON CTAREC (VENCIMENTO);
Zottis
"Um homem só tem o direito de olhar
a um outro de cima para baixo, quando
vai ajuda-lo a levantar-se".
Gabriel Garcia Marquez
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista