none
TempDB - time out on update RRS feed

  • Pergunta

  • Ola galera!

    Preciso de uma ajuda para desvendar um mistério.

    aqui na empresa tem um processamento de um banco mumps e 2 dois bancos sql server na mesma instância

    Vou tentar explicar rs

    o mumps faz um insert, numa tabela temporária global numa base chamada painel1, depois o outro banco também faz um insert na mesma tabela temporária na base painel1. Ate ai tudo bem, essa tabela temporária fica em torno de 170 mil registros.

    Após a inserção sem erros, no banco Painel 1 na mesma tabela temporária se faz um update numa coluna de status, ai tá o problema não faz o update, a conexão cai por time out... mesmo eu pegando 'um' registro e executando com o usuário SA fica toda vida e cai.

    update ##T_PAINELCARGACONSULTA02 set [Motivo para Cobrança não ter sido enviada] = 'Não Enviado'
    where [Código da Cobrança] = '0416730840';

    Verifiquei o parâmetro de connection da instância e está 0 ou seja ilimitado.

    Tem algum parâmetro do TempDB que posso analisar?

    Obrigada pela ajuda,

    Suzana

    sexta-feira, 4 de outubro de 2013 14:22

Respostas

  • Suzana,

    Uma alteração em um volume de dados como você esta dizendo exige que você crie um índice para manipular os dados (consultar/alterar/excluir) com maior eficiência.

    A indicação do Junior Galvão para que você passe a utilizar uma tabela dentro do seu banco de dados (fora o TempDB) é algo que você deve estudar, isto é uma boa prática.

    Analise todos SELECT / UPDATE que você executa e crie um ou mais índices para sua tabela, mesmo ela sendo temporária.

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
     Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    segunda-feira, 7 de outubro de 2013 17:51
    Moderador

Todas as Respostas

  • Se você utilizar uma trigger para realizar o UPDATE pois quando sua tabela receber o registro a trigger de update seria disparada tudo dentro do Banco.

    Espero ter ajudado


    Junior

    sexta-feira, 4 de outubro de 2013 14:39
  • Suzana,

    Na verdade o problema esta justamente no uso da um Temp Table Global, por ocorrência de sobrecarga de processamento no TEMPDB.

    Você já pensou em criar uma tabela física ao invês de utilizar um temporária?

    Um problema que pode esta acontecendo é alguma falha física no seu banco de dados TEMPDB, talvez seja o caso de excluir o banco.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    sábado, 5 de outubro de 2013 00:57
  • Suzana,

    Uma alteração em um volume de dados como você esta dizendo exige que você crie um índice para manipular os dados (consultar/alterar/excluir) com maior eficiência.

    A indicação do Junior Galvão para que você passe a utilizar uma tabela dentro do seu banco de dados (fora o TempDB) é algo que você deve estudar, isto é uma boa prática.

    Analise todos SELECT / UPDATE que você executa e crie um ou mais índices para sua tabela, mesmo ela sendo temporária.

    Espero que seja útil para você.

    Abraços,

    Durval Ramos
     Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    segunda-feira, 7 de outubro de 2013 17:51
    Moderador