none
Commit RRS feed

  • Pergunta

  • Olá,

    Alguém sabe me dizer se por default o SQL Server vem configurado com auto commit? e como desabilito esta configuração?


    Pois, tenho uma transação em que preciso copiar todos os dados de um mês para o outro (onde somente a coluna de estoque é copiada zerando as demais colunas) para um numero 811557 linhas o banco esta levando 43min, já criei um indice somente para as colunas de mês e ano que estou usando como condição e nao melhorou a performance. Este tempo de execução ocorre no meu ambiente de teste em uma maquina de 1GB de ram.

    Desde já obrigada!

    quarta-feira, 30 de junho de 2010 12:27

Respostas

  • Bom dia Néia,

    Sim, o default do sql server é o autocommit. Segue link demonstrando como desabilitar. Mas acredito que uma maneira interessante, jah que vc quer ter  o controle sobre as transações, é usadar o modo explícito, com begin tran - commit.

    Realmente é um tempo elevedo Néia, considerando a quantidade de registros que vc disse... É valido verificar, caso vc esteja executando uma operação do tipo select/insert na mesma tabela e obviamente dentro da mesma transação, se não está havendo ocorrência de locks.

    Segue um link sobre como desabiliar o autocommit(mas acredito que ele não é o causador da sua lentidão):                                              http://mcdbabrasil.com.br/modules.php?name=Forums&file=viewtopic&t=2566&view=previous

    att.

    Rafael

    • Editado Rafael S. Melo quarta-feira, 30 de junho de 2010 12:51 Adicionar detalhes
    • Marcado como Resposta Richard Juhasz quarta-feira, 30 de janeiro de 2013 15:13
    quarta-feira, 30 de junho de 2010 12:48
  • Rafael,

    Concordo com sua observação, eu acredito que ela pode estar se deparando com concorrência de tables!!!!

    Néia,

    Poderíamos inicialmente utilizar o bom e velho sp_lock.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Richard Juhasz quarta-feira, 30 de janeiro de 2013 15:13
    quinta-feira, 1 de julho de 2010 19:08
    Moderador

Todas as Respostas

  • Bom dia Néia,

    Sim, o default do sql server é o autocommit. Segue link demonstrando como desabilitar. Mas acredito que uma maneira interessante, jah que vc quer ter  o controle sobre as transações, é usadar o modo explícito, com begin tran - commit.

    Realmente é um tempo elevedo Néia, considerando a quantidade de registros que vc disse... É valido verificar, caso vc esteja executando uma operação do tipo select/insert na mesma tabela e obviamente dentro da mesma transação, se não está havendo ocorrência de locks.

    Segue um link sobre como desabiliar o autocommit(mas acredito que ele não é o causador da sua lentidão):                                              http://mcdbabrasil.com.br/modules.php?name=Forums&file=viewtopic&t=2566&view=previous

    att.

    Rafael

    • Editado Rafael S. Melo quarta-feira, 30 de junho de 2010 12:51 Adicionar detalhes
    • Marcado como Resposta Richard Juhasz quarta-feira, 30 de janeiro de 2013 15:13
    quarta-feira, 30 de junho de 2010 12:48
  • Rafael,

    Concordo com sua observação, eu acredito que ela pode estar se deparando com concorrência de tables!!!!

    Néia,

    Poderíamos inicialmente utilizar o bom e velho sp_lock.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Richard Juhasz quarta-feira, 30 de janeiro de 2013 15:13
    quinta-feira, 1 de julho de 2010 19:08
    Moderador