Jump to content
PMSF

Acelerar procedimento para gravação na base dados

Recommended Posts

PMSF

boa tarde,

vou explicar de uma forma genérica e assim que possivel coloco os comandos.

tenho uma aplicação lê um ficheiro .txt com dados, faz-lhe o respetivo tratamento e mostra os resultados numa datagridview.

os dados processados são então gravados numa base de dados para consulta e referencia.

é neste processo que noto, quando faço testes com apenas 50 linhas, que o tempo de gravação do conjunto fica cada vez mais lento.

ex:

1ª gravação - 218.7836 milisegundos

2ª gravação - 562.5936 milisegundos

3ª gravação - 843.8904 milisegundos

e só volta a baixar o tempo após reiniciar a aplicação.

podem dar-me ideias de como manter o processo sempre com um tempo identico?!

obrigado

Share this post


Link to post
Share on other sites
He B TeMy

boa tarde,

vou explicar de uma forma genérica e assim que possivel coloco os comandos.

tenho uma aplicação lê um ficheiro .txt com dados, faz-lhe o respetivo tratamento e mostra os resultados numa datagridview.

os dados processados são então gravados numa base de dados para consulta e referencia.

é neste processo que noto, quando faço testes com apenas 50 linhas, que o tempo de gravação do conjunto fica cada vez mais lento.

ex:

1ª gravação - 218.7836 milisegundos

2ª gravação - 562.5936 milisegundos

3ª gravação - 843.8904 milisegundos

e só volta a baixar o tempo após reiniciar a aplicação.

podem dar-me ideias de como manter o processo sempre com um tempo identico?!

obrigado

Isso depende do código como esteja a ler, é sempre a mesma tabela?

Tens a certeza que o que está a ler, não é a soma de tudo ? (O tempo deles todos, tipo o 2º esses milisegundos que estão aí serem a soma do 1º + 2º?)

Mas mesmo assim, se não for uma base de dados extensa, esses milisegundos não é muita coisa, ou isso é sempre nessa escala? É que se for é estranho... com uns 50 dados ficava-te 20s não ? lol

Share this post


Link to post
Share on other sites
PMSF

ok... o intervalo de tempo que estou a medir corresponde ao seguinte loop... para as 50 linhas

For CadaLinha = 1 To QuantasLinhas - 2
'gravar linha na base de dados
strSql = "insert into tLista (Campos) values ("valores")"
		    If ExecutaComando(strSql) > 0 Then
		    Else
			    MsgBox("Não foi possível Inserir o registo")
		    End If
Next

na 1ª vez que corre este loop, para o mesmo numero de dados, demora 218.7836 milisegundos, na 2ª - 562.5936 e continua a aumentar até reiniciar a aplicação.

o problema é que é um teste, em situações reais, são de 8000 a 12000 linhas, e estou a tentar diminuir o tempo do prosseço.

e entre tratamentos de dados estar a sair e voltar entrar na aplicação torna-se chato, mas necessário para que o tempo de gravação não duplique :(

pensei se terei que limpar a memória em uso ou outra solução, mas os meus conhecimentos são pouquinhos e não consigo resolver

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.