GARANTIR DESCONTO

Fórum Configuração do Bd x Lentidao #40571

04/12/2003

0

Ola Colaboradores

Venho novamente ao seu auxilio com o seguinte problema.

Meu sistema de venda funciona bem mas quando chega na parte da tarde a gravação e consulta comecam a ficar lento.

Fiz alguns ajuste como preparar e unprepar a tabela, descobir gargalos importantes. Mas com o passar das horas o banco fica lento tanto para pesquisa como gravação.

Vejam se estou errando em algum processo abaixo.

1) Cada vez que uso uma consulta (exemplo consulta do produto) utilizo CommitRetaining depois . Não uso antes o StartTransaction. Isto é dou um select para pesuisar e CommitRetaining.

Na gravação da venda uso StartTransaction e Commit/Roolback.

2) Com a configuraçao no banco abaixo
descrita houve uma melhora. Na verdade mexi no seguinte
Page size 8192 Page buffers 300.
O serivdor do cliente é um pentium III de 800 com 128 de memoria. Mas como funciona na maior parte do dia bem particularmente não acho que seja o problema. Ele tem 4 caixas que rodam o dia todo e tres outras máquinas onde utiliza para cadastros e etc. Sinceramente ainda não entendi plenamente como configurar melhor estes parâmetros. Mas o parâmetro ai informado melhorou mas não resolveu. Tó usando até o firebird 1.5.

3) O programa de vendas(caixa) abre dois bancos. Um banco local onde consulto alguns parâmetros gravando apenas uma tabela. E o outro banco que faço toda operação de consulta e gravação é o bicho papão que tá no servidor. Assim os caixas foram insalados como servidor e não apenas com cliente.

4) Usando o programa IBM para monitorar veifiquei que o cache vai aumentado de acordo com o valor determinado do PAGE BUFFERS. Aparentemente acho que o problema pode ser este (talvez não estou sabendo configurar corretamente e ele está estorando) ou a forma como estou usando transação não está correta. Como calcular esta confirguração ?

Segue a configuração do BD abaixo . Caso tenham alguma sugestão do porque pode esta lentidao progressiva eu agradeco muiittto.
Será que estou usando errado as transações ? Pelo que já li e pesquisei o forum pode ser. Fica aqui o apelo e o agradecimento mais uma vez pela coloboração.

Abracos Marcos Roberto

Abaixo a configuração do Banco no servidor para analise

Flags 0
Checksum 12345
Generation 118
Page size 8192
ODS version 10.1
Oldest transaction 107
Oldest active 108
Oldest snapshot 108
Next transaction 111
Bumped transaction 1
Sequence number 0
Next attachment ID 0
Implementation ID 16
Shadow count 0
Page buffers 1000
Next header page 0
Database dialect 3
Creation date Dec 2, 2003 19:41:05
Attributes force write

Variable header data:
Sweep interval: 20000
*END*


Marcosrodias

Marcosrodias

Responder

Posts

04/12/2003

Travain

Marcos, não adianta nada você aumentar o page buffers do Firebird se o servidor não possui memória para suportá-lo. O que vai acontecer é o seguinte: como a máquina não possui mais memória física, o Windows começa a gravar no arquivo de swap, aí adeus performance. O que você pode verificar é que reiniciando o servidor as coisas voltam a funcionar, então o que pode estar acontecendo é que as transações devem estar muito demoradas e com isso criando lixo desnecessário no BD. Experimente utilizar algumas store procedures na venda, talvez resolverá o problema. Pesquise as transações do Firebird, para você entendê-las, isso também o ajudará com o problema.

Até mais.


Responder

Gostei + 0

04/12/2003

Aroldo Zanela

Colega,

Primeiramente eu acho que você deveria adicionar mais memória a este servidor, se possível, utilizar RAID 5 ou pelo menos RAID 0 para aumentar a performance, uma rede 100 mb com Switch (ao invés de HUB) devidamente certificada e as demais observações do colega travain para assegurar uma correta configuração do FB.


Responder

Gostei + 0

05/12/2003

Marcosrodias

Ola companheiros

Depois de ler e meditar nas respostas gostaria de entender melhor a expressão abaixo.

* * * * * * * * * *
O que você pode verificar é que reiniciando o servidor as coisas voltam a funcionar, então o que pode estar acontecendo é que as transações devem estar muito demoradas e com isso criando lixo desnecessário no BD
* * * * * * * * * *

Como posso estar gerando este lixo ?

Grato mais uma vez Marcos Roberto[/b]


Responder

Gostei + 0

06/12/2003

Travain

Marcos, para cada UPDATE feito no BD o Firebird cria uma cópia dos dados anteriores, para o caso de você cancelar uma transação. Quando você edita o cadastro de um cliente por exemplo, todas as informações daquele registro ficam armazenadas em um local específico do BD. Se a transação de um terminal fica muito tempo ativa e outro terminal também inicia uma nova transação e demora muito a terminá-la o Firebird vai criando informações dessas transações e isso vai gerando o ´lixo´. No seu caso específico, que são vendas em terminais, compensaria fazer tudo de uma só vez no servidor por intermédio de store procedures. Trabalhando com querys que fazem inserção e edição, para cada produto incluido na venda é requisitado ao servidor uma ação, tornando a aplicação mais lenta e gerando esse ´lixo´. Dê uma olhada na NET em artigos que falam especificamente das transações do Firebird e como elas se comportam, você entenderá melhor como ele trabalha internamente.

Até mais.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar