none
Tabelas no banco de dados TempDB apagam? RRS feed

  • Pergunta

  • Olá amigos. Como vão?

    Estou com um problema de um servidor que está com a performance muito baixa ao executar algumas procedures durante um determinado horário da noite.

    Verifiquei essas procedures e todas criam diversas... mas sim... diversas tabelas temporárias e elas pode está impactando a performance do meu banco de dados. Não tem como tirar essas tabelas das procedures neste instante e tenho que conviver com elas e encontrar uma solução para melhorar a performance.

    Há algum tratamento que eu possa fazer direto no tempDB para melhorar a performance do banco?

    Outra pergunta seria, todas as tabelas que estão no banco de dados tempDB são apagadas sempre que encerra uma conexao feita pelo usuario, correto? Existe alguma possibilidade de essas tabelas não morrerem após o uma procedure iniciar sua execução e depois finalizar?

    Um forte abraço


    Clayton Santos
    clayton1745@gmail.com
    http://clayton1745.spaces.live.com
    http://www.blogdoclayton.blog.com.es
    quinta-feira, 1 de abril de 2010 02:58

Respostas

  • Clayton,

    Como você esta trabalhando com tabelas temporárias locais estão sempre serão excluídas após o encerramento da sessão, como você esta querendo manter elas no TempDB ao invês de utilizar table temporário local utilizar table temporário global, criando suas tables com o caracter ##.

    O Banco de TempDB como qualquer outro banco de dados pode estar sofrendo com problemas de fragmentação de dados, outro detalhe que devemos verificar diz respeito a disco rígidos que estão armazenando o tempdb.

    Existem diversos posts aqui no fórum sobre problemas de performance em relação ao TempDB.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    • Marcado como Resposta Clayton Santos quinta-feira, 1 de abril de 2010 13:21
    quinta-feira, 1 de abril de 2010 12:38
    Moderador

Todas as Respostas

  • Clayton,

    Como você esta trabalhando com tabelas temporárias locais estão sempre serão excluídas após o encerramento da sessão, como você esta querendo manter elas no TempDB ao invês de utilizar table temporário local utilizar table temporário global, criando suas tables com o caracter ##.

    O Banco de TempDB como qualquer outro banco de dados pode estar sofrendo com problemas de fragmentação de dados, outro detalhe que devemos verificar diz respeito a disco rígidos que estão armazenando o tempdb.

    Existem diversos posts aqui no fórum sobre problemas de performance em relação ao TempDB.


    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    • Marcado como Resposta Clayton Santos quinta-feira, 1 de abril de 2010 13:21
    quinta-feira, 1 de abril de 2010 12:38
    Moderador
  • Olá Galvão.

    Eu dei uma pesquisada no forúm e não conseguir achar algum que se enquadre dentro do meu problema. Mas obrigado pelas dicas, me questionaram sobre o SQL S. 2000 ter um problema de não apagar as tebelas do tempdb depois da sessão ser encerrada, por isso que fiquei na dúvida se poderia existir um problema neste genero. vou continuar pesquisando sobre como melhorar a performance. Muito obrigado!!!

    Um forte abraço


    Clayton Santos
    clayton1745@gmail.com
    http://clayton1745.spaces.live.com
    http://www.blogdoclayton.blog.com.es
    quinta-feira, 1 de abril de 2010 13:21
  • Clayton, Tudo Bem?

    Pelo que entendi, você está sofrendo com sobrecarga no TempDB. Por isso, você perguntou se existe uma maneira de tirar as tabelas temporárias das Procedures.

    Antes de mais nada, você precisa ter certeza que essa quantidade de Tabelas temporárias que estão sendo criadas é realmente grande ou se sua configuração da infraestrutura não está adequada.

    Monitore o seu servidor utilizando as DMV e Performance Monitor do Windows. Você poderá coletar informações suficientes para ter certeza que o problema é o numero de tabelas temporárias ou se o problema é uma Infraestrutura mal dimensionada.

    Por padrão, já recomendo você avaliar quantos processadores estão alocados e sendo utilizados para o SQL Server, pois se tiver mais do que 1, recomendo criar um numero de Datafiles igual ao numero de processadores. Essa configuração deve ser feita no TempDB. (Não esqueça que o tamanho e taxa de crescimento devem ser iguais em todos os DataFiles)

    Se quiser uma orientação quanto ao monitoramento e avaliação do ambiente, me avise!

    Juliano Horta

    quarta-feira, 7 de abril de 2010 17:46