none
update em milhões de registros RRS feed

  • Pergunta

  • Boa Tarde. Estou precisando fazer um update em mais de 8 milhoes de registros. 

       Existe uma melhor forma de fazer isto.

    Grata

    segunda-feira, 5 de fevereiro de 2018 16:16

Respostas

  • Verificou se existe triggers ou foreignkeys associadas à tabela que esta sendo atualizada.

    Caso esteja usando chaves estrangeiras, lembre-se que a cada atualizaçao é disparada uma verificaçao para ver se a relaçao ainda é valida.

    NO caso de triggers a siuaçao pode ser mais lenta ainda.

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta LaraW quarta-feira, 7 de fevereiro de 2018 15:01
    segunda-feira, 5 de fevereiro de 2018 19:14
  • Lara,

    Alguns fatores influenciam no tempo de execução (além da quantidade de linhas afetadas), como abertura de transação explicitamente (BEGIN TRANSACION), recovery model da base e os demais citados pelo William.

    Não sei da sua necessidade, mas você pode pensar em fazer esse update em blocos, talvez dentro de um WHILE.
    Sempre que precisei fazer aqui, utilizei dessa maneira, mas no meu caso eu poderia atualizar em blocos e, caso desse erro em alguma execução, os registros que foram atualizados não seriam um problema.

    Att.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta LaraW quarta-feira, 7 de fevereiro de 2018 15:00
    segunda-feira, 5 de fevereiro de 2018 19:19
  • Deleted
    • Marcado como Resposta LaraW quarta-feira, 7 de fevereiro de 2018 15:01
    segunda-feira, 5 de fevereiro de 2018 19:53

Todas as Respostas

  • LaraW,

    Que tipo de update precisa fazer? Ou o que de específico há em seu update?


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    segunda-feira, 5 de fevereiro de 2018 16:21
  •    É um update com join, porém está demorando demais pelo fato de ter muitos registros para ser atualizado. Já possui indices nos campos que fazem join.

    Grata

    segunda-feira, 5 de fevereiro de 2018 16:30
  • Verificou se existe triggers ou foreignkeys associadas à tabela que esta sendo atualizada.

    Caso esteja usando chaves estrangeiras, lembre-se que a cada atualizaçao é disparada uma verificaçao para ver se a relaçao ainda é valida.

    NO caso de triggers a siuaçao pode ser mais lenta ainda.

    Att


    William John Adam Trindade
    Analyste-programmeur


    Sogi Informatique ltée
    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer". Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta LaraW quarta-feira, 7 de fevereiro de 2018 15:01
    segunda-feira, 5 de fevereiro de 2018 19:14
  • Lara,

    Alguns fatores influenciam no tempo de execução (além da quantidade de linhas afetadas), como abertura de transação explicitamente (BEGIN TRANSACION), recovery model da base e os demais citados pelo William.

    Não sei da sua necessidade, mas você pode pensar em fazer esse update em blocos, talvez dentro de um WHILE.
    Sempre que precisei fazer aqui, utilizei dessa maneira, mas no meu caso eu poderia atualizar em blocos e, caso desse erro em alguma execução, os registros que foram atualizados não seriam um problema.

    Att.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    • Marcado como Resposta LaraW quarta-feira, 7 de fevereiro de 2018 15:00
    segunda-feira, 5 de fevereiro de 2018 19:19
  • Deleted
    segunda-feira, 5 de fevereiro de 2018 19:49
  • Deleted
    • Marcado como Resposta LaraW quarta-feira, 7 de fevereiro de 2018 15:01
    segunda-feira, 5 de fevereiro de 2018 19:53
  • Lara,

    Você poderia nos apresentar o bloco de código que esta utilizando?

    Seria possível nos informar se este update este sendo feita somente em uma única tabela? Ou esta tabela possui relacionamento?


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quarta-feira, 7 de fevereiro de 2018 11:20
  •   Boa Tarde a todos e muitissímo obrigada pelas respostas de todos. Muitas coisas ditas me esclareceram.

      Consegui melhoras em meu resultado com as dicas.

    Grata!!!

    quarta-feira, 7 de fevereiro de 2018 15:19