importando dados da tabela para arquivo excel

Off Topic

30/01/2014

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??
Maria Silva

Maria Silva

Curtidas 0

Respostas

Alex Lekao

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.
GOSTEI 0
Maria Silva

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.
GOSTEI 0
Alex Lekao

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.
GOSTEI 0
Maria Silva

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

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!
GOSTEI 0
Alex Lekao

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
POSTAR