none
Muito lento sql com FILL RRS feed

  • Pergunta

  • Pessoal minha tabela não é muito grande tem 17mil registros mas mesmo assim quando vou fazer um insert ou update demora muito, e tenho que carregar todos os registros no grid apos isso, tem outra opção?

    SqlDataCQ.Fill(Dscq1)

    quinta-feira, 20 de setembro de 2012 14:41

Respostas

Todas as Respostas

  • Olá RJCERRI

    Ele está lento para fazer o insert, update e para retornar os dados no grid?

    Como está sua tabela? Tem muitos índices?

    Não sei como está fazendo para retornar os dados no grid, mas acho que se você estiver retornando os 17 mil registros não é uma boa, acho que seria interessante você limitar o resultado para uma quantidade bem menor de registros e colocar um checkbox para o usuário poder marcar caso queira visualizar mais registros.

    Se toda vez que incluir um registro e logo em seguida carregar 17k de registros fica lento sim, mas você também pode minimizar seguindo os passos do link abaixo.

    http://www.macoratti.net/adon_dsr.htm

    Eu costumo usar o DataReader quando é apenas para mostrar os dados em um grid.

    Att.,

    Jeimes Ribeiro

    "Caso a resposta seja útil, marque como resposta."

    quinta-feira, 20 de setembro de 2012 18:48
  • Oi, ele esta lento pra jogar no grid, no insert,update e exclusão esta normal. Não estou usando nenhum indice. Nunca usei datareader ele é mais rapido pra jogar no grid?
    quinta-feira, 20 de setembro de 2012 20:27
  • Sim, em alguns casos é viável a utilização de DataReader por ser mais rápido. No link abaixo tem um exemplo. Você pode utilizar o datareader da forma citada no link ou pode preencher um datatable com os dados retornados do DataReader.

    http://www.macoratti.net/vbn_cobd.htm

    Você pode testar o tempo de execução do seu código com o exemplo do link abaixo (procure na página por ("StopWatch Medindo o Tempo de Execução")

    http://www.jorgepaulino.com/2008/06/vbnet-dicas-de-programao-6.html

    Os índices em uma tabela, dependendo da quantidade de registros, pode deixar o insert, update e delete um pouco mais lentos (pouca coisa), mas são de grande ajuda (rápidos) no caso de executar um select para retornar dados.

    Dê uma pesquisada nas formas possíveis de preencher um Datagridview e tente medir o tempo de execução e utilize o que melhor for, mas volto a perguntar se realmente há necessidade de retornar todos os registros no grid?

    Att.,

    Jeimes Ribeiro

    "Caso a resposta seja útil, marque como resposta."

    quinta-feira, 20 de setembro de 2012 20:56
  • Olá,

    Sugiro que você reveja se quer realmente exibir 17 mil registros no seu grid... Tem certeza que você precisa trazer essa quantidade imensa de dados? O usuário precisa realmente de todas essas linhas que você está retornando?

    Digo isso pois, a meu ver, não faz muito sentido você exibir de uma vez 17 mil registros em um grid... O que o usuário conseguiria fazer com tantos dados assim?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima

    sexta-feira, 21 de setembro de 2012 11:03
    Moderador