Array
(
)

Problema de Lentidão excessiva

Reg_desenvolvimento
   - 21 dez 2005

Ae galera, blz? é meu primeiro tópico aqui no forum, nao sei se postei certo.
è o seguinte, entrei a pouco tempo nessa empresa e eles estão migrando um sistema feito em BDE/Paradox para um sistema Firebird, que usa componentes da Palheta Interbase.

Só que muuuitiiisimas instruções do sistema, alias, 90¬ usam table para a manipulação dos dados, o que no BDE ficava mais ´Fácil´, ma no firebird não está sendo.
Vamos lá...

1º USavam o FIndnearest para pesquisa do registro, tive que substituir por Locate (tudo isso em table), mas pela arquitetura do firebird, isso fica ridicularmente lento, ao ponto de ficar inviável. Sei que usando Query ficaria muito melhor, mas teria que modificar uma parte muito grande do sistema e tenho que entregar essa conversão daqui umas 4 horas... :(

2º Acho que o mais crítico seria esse problema, pois quando precisava de dados filtrados, não são usados Querys, e sim ainda as Tables. Então, usando o método Filter, no paradox ficava conveniente, mas quando passei pro firebird, esquece. QUando se pega uma porção de dados e faz um filtro mais ou menos assim:

excluido = ´N´

Então ok, nada de lentidão, se eu fizer

excluido = ´N´ and pago <> ´S´

Também sem problemas, mas se eu pegar depois disso e filtrar novamente algo assim:
baixado = ´N´

Esquece, é melhor sair do sistema com CTRL + ALT + del e entrar denovo.


Alguem ai tem alguma idéia do que posso fazer?

PS: ja considerei a idéia de migrar para dbexpress, mas como citei, a opção por componentes interbase ja existia antes de eu pegar o desenvlvimento.

PS2: Sei que usar componentes table é loucura, e a empresa é bem grande, mas o SIstema ja estava assim antes.

Um abraço.


GUSTAVO


Eixox
   - 21 dez 2005

Estimado amigo, não sei se o que vou falar é certo, mas poderá ajudá-lo com o seu problema:

Quando as migrações são realizadas, estiman-se os custos com desenvolvimento. Para isso, faz-se uma análise primeira na base de dados. Muitas tabelas são desenvolvidas e muitas delas algumas vezes não são usadas. Para isso faz-se necessário a análise do banco de dados.

Num segundo momento, define-se o novo sistema e a plataforma de desenvolvimento e também o mantenimento ou alteração da base de dados para um outro formato. Tudo depende do volume de dados que está se tendo e a quanto se pretende chegar - expansões.

Quando a sua empresa resolveu adotar uma nova metodologia de desenvolvimento, usando um padrão diferente do original, estimou-se o desenvolvimento novamente do código.

Nesse caso, o seu software está sendo projetado com a lataria de uma Ferrari, mas no desenvolvimento do motor, estão ainda pensando na forma do Fusca - questão temporal.

Quando você fala em BDE, está usando uma camada de conversão de dados - código pascal passa para consulta em SQL.

Se você está trabalhando com a paleta Interbase, deve pensar em usar SQL para todos os processos. Somente o uso do pascal em questões de interface. Validações e etc.

Quando fala-se em banco de dados Firebird, você está falando em procedures e funções, gatilhos e etc que diminuem o código rasoavelmente e livram a responsabilidade do programador no lado da frente e incorporam responsabilidades de desenvolvimento do lado da base de dados. Um gerenciamento mais efetivo. A responsabilidade é deixada para o banco de dados gerenciar.

Acredito que você deveria repensar a forma de desenvolvimento dessa ferramenta. Esquecer o passado e olhar para o presente e atuar no presente.

Todo o processo de desenvolvimento é praticamente um parto. E todo parto dói e dói muito, ainda mais quando o parto é intelectual.

espero ter ajudado.

Abraços


Reg_desenvolvimento
   - 21 dez 2005

Eu sei meu caro amigo, e como eu gostaria que as coisas tivessem sido diferentes, mas quando peguei o código, acreditaram que pouco mudaria, o que não é verdade, infelismente.

Tentarei melhorar o motor, se possível chegar ao motor de uma minardi F1 ja estaria bom, mas ja que hj somos um Herbie mesmo, fazer o que...
Mas se alguem puder me ajudar com qualquer codigo, método ou gambiarra, por favor, estou Aceitando...

Gustavo...