Paradox X Rede X Lenta

08/12/2003

1

O negócio é o seguinte

Servidor:
Atlhon 1800 - 128 Ram - Windows XP

Estação:
PIII 700 - 128 Ram - Windows 98

Sistema desenvolvido em delphi 3.
Banco de Dados: Paradox (20 mb), contendo muitos memos em cada registro.
Funcionamento:
Na primeira tela tenho um grid que é preenchido com uma query através do seguinte sql:
With TAb.Query Do
begin
Close;
if strtoint(livros.text) < 100 then
SQL.text:=´Select termo,livro,folha, data, nome,outorgantenome,outorgadonome,numerado from tabprocura where excluido=false and tipo = true and numerado = false or livro = ´+chr(39)+livros.text+chr(39)+texto;
if strtoint(livros.text) > 100 then
SQL.text:=´Select termo,livro,folha, data, nome,outorgantenome,outorgadonome,numerado from tabprocura where excluido=false and tipo = false and numerado = false or livro = ´+chr(39)+livros.text+chr(39)+texto;
Open;
end;

Sendo que texto normalmente é: order by livro,folha



Agora o que está acontecendo:

1ª Situação:

Servidor: Não esta rodando nenhum programa feito em delphi:
Estação: Sql abre rapidamente sem problemas

2ª Situação:

Servidor: Rodando qualquer outro programa feito em delphi e/ou o mesmo da estação
Estação: Sql leva mais de 30 segundos para abrir.



Quando saio dos dois programas entro na estação novamente (como na primeira situação) roda tudo beleza.
Executo um programa no servidor (como na segunda) para tudo novamente.

Preciso imensamente de ajuda neste tópido, parece besteira mas perderei um cliente se nao resolver isto hoje ainda, e é um bom $$$ cliente.

Agradeço imensamente vossa ajuda.


Responder

Posts

08/12/2003

Yankleber

Amigão, espero poder ajudá-lo.

Não tenho muito tempo agora, mas vou direto ao que interessa.
Se você usa ORDER BY, muito provavelmente seu BD está carecendo de um índice criado segundo a sua cláusula ORDER BY. Por exemplo, se você usa muito ´order by livro,folha´ deveria criar um índice para os campos livro+folha. Você não imagina como isso pode melhorar a performance de um banco.

Agora, vou lhe dizer o seguinte: Paradox é um lixo. Se você está baseando o bom fucionamento do seu programa nele, você está literalmente f...

Migre URGENTEMENTE sua base de dados para algo decente como Interbase, Firebird, SQL-Server ou MySQL, ou então vai acabar perdendo mesmo o cliente.

Você falou algo sobre 30 segundos. Só para você ter uma idéia, eu tenho um BD com 500.000 (quinhentos mil registros) no SQL-Server que faz QUALQUER pesquisa que você imaginar em 2 segundos (isso mesmo, dois segundos). Portanto...


PS: A sua pesquisa se torna mais rápida quando você ´entra de novo´, porque os dados já estão no cache do micro.

Boa sorte!


Responder

08/12/2003

Xmagno

Concordo com o yankleber , vc deve pular fora do Piradox o quanto antes.

Eu ja tive muitos problemas (ha muitos anos, hehe) com ele, inclusive perdendo informacoes -- e de maneira inexplicavel -- E piorou muito qdo eu troquei o servidor com win98 para um rodando win nt 4. Ai que o trem ficou ruim mesmo.

A nivel de teste, tente fazer uma copia pro win98 e coloque-o como servidor e veja qual sera a performance do mesmo.

[]´s
xMagno


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira