none
Arquivo tempdb muito grande RRS feed

  • Pergunta

  • Ola a todos

    Bom, onde trabalho temos um server de sql rodando, e temos notado q este arquivo temporário vem ficando com um tamanho um pouco incomum, chegando a passar dos 6 gb

    gostaria de saber se tem alguma medida q possa ser feita para diminuição ou otimização deste arquivo

    agradeço a quem puder ajudar
    quinta-feira, 27 de março de 2008 19:33

Respostas

  • Boa Noite,

     

    Os arquivos do TempDB crescem a medida que atividades que requerem objetos temporários são utilizados. Ex: Ordenação de grandes conjuntos de resultados, criação de índices com a opção Sort in TempDB, criação de tabelas temporárias, utilização de triggers e versionamento de linhas (somente no 2005), etc.

     

    A medida que esses objetos e tarefas são finalizados, o tempdb vai liberando espaço utilizado. Se isso não está ocorrendo da forma como deveria, a principal razão é a existência de processos que estão com transações abertas ou rodando a muito tempo. No entanto, se você vem notando o aumento de forma gradual, pode ser um sinal de um aumento de atividade no seu sistema.

     

    O link abaixo demonstra como reduzir o tamanho do TempDB

     

    http://support.microsoft.com/kb/307487/en-us

     

    Otimizar o TempDB é algo um pouco além do que simplesmente reduzir o seu tamanho. Você poderá encontrar muitas informações nesse Webcast. Ex:

     

    http://support.microsoft.com/kb/834846/en-us

     

    [ ]s,

     

    Gustavo

    • Sugerido como Resposta DanielMartins1986 quinta-feira, 31 de março de 2011 19:10
    • Marcado como Resposta Heloisa Pires quinta-feira, 5 de julho de 2012 16:46
    quinta-feira, 27 de março de 2008 22:21

Todas as Respostas

  • Boa Noite,

     

    Os arquivos do TempDB crescem a medida que atividades que requerem objetos temporários são utilizados. Ex: Ordenação de grandes conjuntos de resultados, criação de índices com a opção Sort in TempDB, criação de tabelas temporárias, utilização de triggers e versionamento de linhas (somente no 2005), etc.

     

    A medida que esses objetos e tarefas são finalizados, o tempdb vai liberando espaço utilizado. Se isso não está ocorrendo da forma como deveria, a principal razão é a existência de processos que estão com transações abertas ou rodando a muito tempo. No entanto, se você vem notando o aumento de forma gradual, pode ser um sinal de um aumento de atividade no seu sistema.

     

    O link abaixo demonstra como reduzir o tamanho do TempDB

     

    http://support.microsoft.com/kb/307487/en-us

     

    Otimizar o TempDB é algo um pouco além do que simplesmente reduzir o seu tamanho. Você poderá encontrar muitas informações nesse Webcast. Ex:

     

    http://support.microsoft.com/kb/834846/en-us

     

    [ ]s,

     

    Gustavo

    • Sugerido como Resposta DanielMartins1986 quinta-feira, 31 de março de 2011 19:10
    • Marcado como Resposta Heloisa Pires quinta-feira, 5 de julho de 2012 16:46
    quinta-feira, 27 de março de 2008 22:21
  • Gustavo,

     

    Logicamente a redução do tamanho é um processo inicial que deve ser feito, mas particularmente você faz este tipo de otimização no TEMPDB de que forma?

    sexta-feira, 28 de março de 2008 11:08
  • Olá Jr.

     

    A primeira otimização a ser feita em relação ao TempDB é colocá-lo em um disco separado. Dessa forma, as atividades que envolvam o tempdb não irão concorrer com os demais bancos de dados. É certo que nem sempre temos em mãos um disco separado para colocar o TempDB e alguns casos acabamos por fazer outras escolhas (separar logs de dados, separar índices de tabelas, particionar tabelas, etc) e não sobra disco para o TempDB.

     

    Nessas situações duas recomendações úteis (mesmo que não haja um disco exclusivo para o TempDB).

     

    - Colocar um tamanho inicial do TempDB adequado

    Costumo definir um tamanho inicial do TempDB maior do que o padrão (nas minhas instalações coloco 1,5GB). Se utilizarmos o tamanho padrão (8MB), toda vez que houver uma forte utilização do TempDB, ele irá "perder tempo" crescendo para acomodar a transação e posteriormente reduzindo o seu tamanho para o tamanho original. Esse movimento de crescimento e redução é prejudicial e por isso prefiro já colocar um tamanho grande para evitar esses dois movimentos.

     

    - Criar um arquivo de dados adicional para cada processador

    Se o servidor possuir múltiplos processadores, cada processador pode disparar uma Thread para gravação e leitura em paralelo. Dessa forma, se possuo um servidor com 8 processadores, pode ser útil criar mais 7 arquivos no TempDB para que cada processador possa disparar uma Thread para cada arquivo. Se os sistemas são de altíssima concorrência, essa recomendação não terá efeito já que os processadores estarão muito ocupados para que todos ao mesmo tempo dediquem-se ao TempDB. No entanto, no momento em que ninguém estiver usando o sistema e houver uma carga que use objetos temporários, isso pode fazer diferença já que os processadores deverão estar mais dedicados.

     

    O Webcast possui outras recomendações igualmente interessantes.

     

    [ ]s,

     

    Gustavo

     

    sexta-feira, 28 de março de 2008 13:58
  • Gustavo,

     

    Muito obrigado, estes procedimento eu já conhecia, inclusive já realizei alguns.

     

    Sobre o webcast também já acessei.

    sexta-feira, 28 de março de 2008 14:37
  • Apenas como complemento, embora o documento do link abaixo seja voltado para SQL Server 2005, suas informações são bastante úteis para conhecer melhor como é e funciona o tempdb.

     

    http://www.microsoft.com/technet/prodtechnol/sql/2005/workingwithtempdb.mspx (Working with tempdb in SQL Server 2005)

     

    http://msdn2.microsoft.com/en-us/library/ms345368.aspx (Capacity Planning for tempdb)

     

    um abraço

    Nilton Pinheiro

    www.mcdbabrasil.com.br

     

    sábado, 29 de março de 2008 00:53
    Moderador