importando dados da tabela para arquivo excel
Estou gerando um relatório em excel no visual basic, os dados estão sendo importados de uma tabela do SQLSERVER com 331000 registros, o arquivo excel está levando 40 minutos para sua conclusão, estou incomodada pelo tempo que leva para importar estes dados, mesmo sabendo que o processamento ocorreu sem nenhum erro.
Existe outro jeito de diminuir o tempo??
Existe outro jeito de diminuir o tempo??
Maria Silva
Curtidas 0
Respostas
Alex Lekao
30/01/2014
Ola Maria, boa tarde!!!
Nao sei se seria isso, mas talves esteja nas ferramentas usadas para as conexoes com o banco de dados e exportacao para o Excel.
Nao sou desenvolvedor, mas acredito que possa ser algo com relacao a isso.
Nao sei se seria isso, mas talves esteja nas ferramentas usadas para as conexoes com o banco de dados e exportacao para o Excel.
Nao sou desenvolvedor, mas acredito que possa ser algo com relacao a isso.
GOSTEI 0
Maria Silva
30/01/2014
bem, deixo eu fazer entender melhor, o sistema é em visual basic, neste sistema, tem uma tela que exibe os dados em planilha excel, para exibir esses dados leva 40 minutos, a quantidade de dados são de 331000 linhas vindo de uma tabela do SQLSERVER. O que estou querendo é melhorar a performance no tempo de exibir.
O meu programa é simples, faz um laço com o comando " Do Until rs.EOF ' e monta pelo comando que segui: ExlObj.ActiveSheet.Cells(NxtLine, 1).Value = rs!Agencia. isto leva 40 minutos.
O meu programa é simples, faz um laço com o comando " Do Until rs.EOF ' e monta pelo comando que segui: ExlObj.ActiveSheet.Cells(NxtLine, 1).Value = rs!Agencia. isto leva 40 minutos.
GOSTEI 0
Alex Lekao
30/01/2014
Oi Maria,
a parte de programacao foi ficar de devendo muito(nao sou programador).. rsrsr
dependendo do que estiver precisando com referencia ao banco de dados posso tentar te ajudar mais.
Vc pode verificar se os campos usados nas referencias para montar as tabela excel tem indice, os principais, campos chaves no caso, se nao tiver, vc pode experimentar criar um indice para eles e ver se melhora.
Eu tinha um problema aqui, que o software trazia uma pesquisa em tela tbm, um grid simples com 8 colunas e levava quase 20 segundos para trazer 20 registros mais ou menos, apos criarmos o indices isso passou a levar 4 segundos, os 20 segundos foi bondade minha, pq levava mais... rsrsr
outra coisa que podemos tentar verificar tbm eh os relacionamentos da tabela, se e tentar ajustar para que fique melhor e com menos juncoes ou que seja mais objetivo.
Espero ter ajudado.
a parte de programacao foi ficar de devendo muito(nao sou programador).. rsrsr
dependendo do que estiver precisando com referencia ao banco de dados posso tentar te ajudar mais.
Vc pode verificar se os campos usados nas referencias para montar as tabela excel tem indice, os principais, campos chaves no caso, se nao tiver, vc pode experimentar criar um indice para eles e ver se melhora.
Eu tinha um problema aqui, que o software trazia uma pesquisa em tela tbm, um grid simples com 8 colunas e levava quase 20 segundos para trazer 20 registros mais ou menos, apos criarmos o indices isso passou a levar 4 segundos, os 20 segundos foi bondade minha, pq levava mais... rsrsr
outra coisa que podemos tentar verificar tbm eh os relacionamentos da tabela, se e tentar ajustar para que fique melhor e com menos juncoes ou que seja mais objetivo.
Espero ter ajudado.
GOSTEI 0
Maria Silva
30/01/2014
Obrigada amigo, acho que sim pois esta tabela não tem chave principal. Mas me diga uma outra coisa, tenho como criar essa planilha excel dentro de uma stored procedure, que executa no banco do SQL Server.
GOSTEI 0
Claudio Lopes
30/01/2014
Maria, já trabalhei com vba buscando dados via conexão com sqlserver e não demora isso tudo não veja bem:
Você faz consulta em apenas uma tabela? Tipo não possui nenhum relacionamento com outra tabelas dentro do banco? poste a query para analisarmos juntos.
Bom como vc usa o vba, isso quer dizer que o recurso que vc usa é sua máquina, afinal ele vai varrer o itau shopline e escrever linha a linha, sua máquina é boa qual a configuração.
Se quiser posto o código vba que eu uso para você testar.
Abraços!
Você faz consulta em apenas uma tabela? Tipo não possui nenhum relacionamento com outra tabelas dentro do banco? poste a query para analisarmos juntos.
Bom como vc usa o vba, isso quer dizer que o recurso que vc usa é sua máquina, afinal ele vai varrer o itau shopline e escrever linha a linha, sua máquina é boa qual a configuração.
Se quiser posto o código vba que eu uso para você testar.
Abraços!
GOSTEI 0
Alex Lekao
30/01/2014
Obrigada amigo, acho que sim pois esta tabela não tem chave principal. Mas me diga uma outra coisa, tenho como criar essa planilha excel dentro de uma stored procedure, que executa no banco do SQL Server.
Nao entendi bem, mas acredito que sim.
o que o amigo acima citou seria interessante para tentarmos te ajudar melhor.
a opcao do indice eh muito interessante tbm, visto que os dados precisam ser varridos e com isso com o indice a performance aumenta consideravelmente.
GOSTEI 0