Manutenção do SQL Server 2005 TempDB

1

Estou trabalhando com um banco de dados do SQL Server 2005, que tem 8 arquivos em 1 filegroup para o TempDB. O tamanho inicial do primeiro arquivo é de 8MB e os outros 7 são de 2GB. Esse banco de dados é um banco de dados de relatórios, que é preenchido todas as noites a partir de um pacote do SSIS. O pacote e os relatórios usam muitas tabelas temporárias.

Os arquivos cresceram para consumir cerca de 300 GB, distribuídos uniformemente. Está definido para crescer em 200MB sem restrições. O TempDB não tem backup e está em uma SAN.

Eu li que você não deve usar SHRINKDATABASE ou SHRINKFILE no TempDB. Qual é a maneira correta de executar a manutenção nesta situação para garantir que não maximizemos o espaço em disco e mantenha o TempDB enxuto e médio.

Obrigado por qualquer conselho e conhecimento.

    
por Dustin Laine 30.08.2010 / 20:55

1 resposta

1

Veja o artigo 307487 da Microsoft sobre isso.

Tudo se resume a algumas maneiras básicas:

  1. Reiniciar a instância do SQL
  2. Use DBCC SHRINKDATABASE
  3. Use DBCC SHRINKFILE

Todos eles têm seus problemas, como você sabe, mas eu não tenho certeza de nenhuma maneira de executar essa tarefa, já que você está lidando essencialmente com um dos bancos de dados mais importantes da instância. Se você puder se dar ao luxo de desligar a instância por alguns minutos, seria a melhor aposta que eu pensaria.

Lembre-se de que seu tempdb cresceu tão grande que, em primeiro lugar, existe uma boa chance de ele chegar lá novamente. Se esta é uma questão importante, você deve investigar por que o tempdb está crescendo tão grande e planejando adequadamente. A principal razão pela qual as pessoas reclamam das operações de redução é porque os bancos de dados tendem a crescer tão grandes quanto precisam ser, a menos que algo esteja sendo feito errado. Pode não se aplicar a você, mas é apenas um aviso geral que eu faço para qualquer dúvida sobre o encolhimento do banco de dados.

    
por 30.08.2010 / 22:08