[firebase-br] Lentidao em Base de dados Grande

Rodrigo dominio em engeplus.com.br
Sex Jan 22 09:13:34 -03 2010


Bom dia Reijanio,

Ja faço isso, ex. na tabela pedidos peço para abrir assim.

DM.IBPedidos.Close;
DM.IBPedidos.SQL.Clear;
DM.IBPedidos.SQL.ADD('SELECT * FROM PEDIDOS WHERE CODIGO=' + 
QUOTEDSTR('0')');  // abre o codigo zero que nao existe, por tanto, so abre 
a tabela nao retornando registro nenhum...
DM.IBPedidos.Open;

DM.IBItens.Close;
DM.IBItens.SQL.Clear;
DM.IBItens.Add('SELECT * FROM ITENS WHERE CODIGO=:CODIGO');
DM.IBItens.Parambyname('Codigo').AsInteger:= DM.IBPedidosCodigo.Value;
DM.IBItens.Open;

DM.IBPagto.Close;
DM.IBPagto.SQL.Clear;
DM.IBPagto.Add('SELECT * FROM PAGTO WHERE CODIGO=:CODIGO');
DM.IBPagto.Parambyname('Codigo').AsInteger:= DM.IBPedidosCodigo.Value;
DM.IBPagto.Open;


Dessa forma ja nao limita?

Grato,
Rodrigo

----- Original Message ----- 
From: "Reijanio Nunes Ribeiro" <rnribeiro em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Thursday, January 21, 2010 6:32 PM
Subject: Re: [firebase-br] Lentidao em Base de dados Grande


não seria interessante tu limitar teu select usando firts/skip

2010/1/21 Rodrigo <dominio em engeplus.com.br>

> Oi Eduardo, boa tarde,
>
> Deixa eu tentar te explicar qual a situação
>
> Com a mudança dos sistemas para o PAF-ECF, estou transferindo os dados da
> Frente de Loja para a Retaguarda.
>
> No estado atual a Tabela Pedidos ta em torno de 280,000 registros e a
> tabela itens em torno de uns 800.000 registros e a tabela pagto uns 
> 350.000
> registros. A tabela estoque uns 20.000 registros.
>
> Faço tudo com IBOQuery nao utilizo IBTable.
>
> - O primeiro registro faz rapido da Tabela PEDIDOS da Frente de Loja para
> Retaguarda.  2 segundos
>
> - Ja a tabela ITENS faz inserção da Frente de Loja para a Retaguarda e
> atualiza estoque na tabela estoque e atualiza uma tabela chamada movimento
> com a movimentação do estoque. 30 segundos
>
> - Ja a tabela PAGTO faz inserção da Frete de Loja para Retaguarda e
> atualiza todas as formas de pagto possiveis, como Caixa, Contas a Receber,
> Cartao etc... 10 segundos aprox.
>
> Para transferir uma venda em torno de 42 segundos, imagina passar 300
> vendas diarias. leva mais tempo atualizando do que vendendo. hehe
>
> Minha esperança é que tivesse alguma propriedade que pudesse alterar para
> nao ler a quantidade de registros ja existentes na tabela, dessa forma
> aumentando o desempenho.
>
> Grato,
>
> Rodrigo
>
>
>
>
>
>
>
>
>
>
> ----- Original Message ----- From: "Eduardo Bahiense" <
> eduardo em icontroller.com.br>
> To: <lista em firebase.com.br>
> Sent: Thursday, January 21, 2010 5:04 PM
> Subject: Re: [firebase-br] Lentidao em Base de dados Grande
>
>
>
> Olá Rodrigo
>
> Se você está usando algo como TTable no Delphi e codificando
>
> Table.Insert;
> Table.Field[n].Asinteger := 0;
> Table.Post;
>
> e tiver controles dataware ativos, não há cristo que possa te ajudar.
>
> Talvez, se vc der um table.disablecontrols, inserir e fizer um
> table.enablecontrols, você consiga algum pequeno ganho, mas o ideal é
> esquecer essa história de table e trabalhar sempre com queries,
> recuperando somente um número limitados de registros.
>
> Eduardo
>
> Estou com uma base de dados com mais ou menos 1.500.000 registros.
>>
>> Uso IBOQuery para fazer umas consultas e inserções. O Caso é o seguinte,
>> quando vou inserir um item em uma destas tabelas com 400.000 registros
>> demora
>> muito para concluir, parece que ele abre todos os registros, depois
>> atualiza
>> depois
>> reabre todos os registros. Quando uso a base de dados limpa fica que é 
>> uma
>> bala,
>> mas com esse tanto de registros fica bem lenta.
>>
>
>
> ______________________________________________
> 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
>
> __________ NOD32 4793 (20100121) Information __________
>
> This message was checked by NOD32 antivirus system.
> http://www.eset.com
>
>
>
>
> ______________________________________________
> 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

__________ NOD32 4794 (20100121) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com






Mais detalhes sobre a lista de discussão lista