MEMORIA SQL 2000

ICHIHARA 21/12/2003 17:14:13
#1937
Boa tarde pessoal!

Estou com o seguinte problema[S26]

Estou rodando uma aplicacao de leitura de um arquivo que insere em uma base sql2000. No inicio do processo a velocidade da aplicacao eh alta, mas passadas 3hs de trabalho ela comeca a ficar lenta. Percebi que qdo CTRL + ALT + DEL e veirifico os processos percebo que a memoria utilizada pelo SQL cada vez esta maior 200mb!! e vai almentando. E percebi que qto maior mais lenta as transacoes ficam,...

Configuracao do micro SQL2000
Celeron 2gb
1gb RAM
HD 40gb

Existe alguma configuracao do SQL 2000 que eu possa alterar para melhorar isso?

MUito obrigado!!![S24]
USUARIO.EXCLUIDOS 21/12/2003 18:09:38
#1944
Resposta escolhida
Suponho que você está liberando o espaço de memória usado pelos objetos de dados após as tarefas de atualização (close(, bem como o espaço das variáveis-objeto (set objeto = nothing).
Caso afirmativo, uma alternativa é você processar as atualizações em lote. Pode parecer estranho, mas o fato é que você irá gerar um volume menor de atualizações, ampliando o tempo de resposta. para cada atualização. O Windows vai gerar uma única reserva de espaço ao processo e esse espaço será menor do que a soma de vários espaços independentes. Uma vez processando em lotes, após usar o Commit, procure encerrar os objetos de dados e abrí-los novamente, o que também vai auxiliar. Um outro "detalhe" é que se você trabalha alimentando campos ole, texto, data ou memo, o espaço reservado ás operações é bem grande, além do próprio tipo de dados consumir mais memória. Se e onde for possível substituir esses tipos de dados por tipos numéricos, proceda, pois acaba gerando resultados razoáveis.
Outra alteração que PODE surtir resultado: Se você utiliza um objeto connection para toda a aplicação, não o utilize para abrir seus recordsets. O convencional é usar:
oRS.Open "seleção", ObjetoConnection, ...
Utilize, ao invés disso:
oRS.Open "seleção", ObjetoConnection.CONNETIONSTRING, ...
Isso fará com que o Recordset abra sua própria conexão com a base de dados, ao invés de utilizar o Connection. E após as atualizações, feche todos os objetos de dados e os abra novamente. Apesar de ser possível o refresh em alguns deles, eles continuam com o acúmulo de processos anteriores, esperando sempre por um rollback. Encerrando e abrindo novamente, você libera essa "carga extra".
Se não resolver, volte a questão neste tópico, ok?
Tópico encerrado , respostas não são mais permitidas