Qual é a diferença entre Shrink Database e File?

33
DBCC ShrinkDatabase()
DBCC ShrinkFile()
  1. Preciso executar os dois comandos DBCC para reduzir o banco de dados?
  2. Qual é a diferença entre esses dois acima?
Paul White diz que a GoFundMonica
fonte

Respostas:

36

Simplesmente...

  • DBCC ShrinkDatabase(): encolher todos os arquivos
  • DBCC ShrinkFile(): apenas um arquivo

Por exemplo, você pode ter um problema de backup de log e ele fica fora de controle e é executado DBCC ShrinkFile().

Você quase nunca usa ShrinkDatabase.

Antes de considerar usar qualquer comando, leia o blog de Paul Randal sobre encolhimento .

Eu não reduziria nenhum dos arquivos (mdf, ldf), a menos que houvesse um motivo claro. Os arquivos têm o tamanho que precisam porque precisam ter. Os blogs que sugerem fazer isso como parte da manutenção regular provavelmente não entendem como o SQL Server funciona.

gbn
fonte
2
Obrigado cara. você está certo. Acabei de ler o blog de Brent Ozar. Ele está literalmente xingando em seu blog "Pare de diminuir os arquivos do banco de dados. Sério. Agora.".
E quando está fazendo o mesmo, por que existem argumentos diferentes?
Stefan Steinegger
2

Um banco de dados padrão possui dois arquivos

MyDb.MDF e MyDb.LDF

O arquivo MDF é o arquivo de dados em que a partição primária reside. Dependendo das suas necessidades, você pode particionar um banco de dados em vários arquivos. Isso é feito para que os dados (tabelas únicas ou múltiplas) possam abranger vários arquivos que geralmente são colocados em discos rígidos separados para obter um desempenho mais alto.

Se você reduzir um banco de dados, todos os arquivos associados a esse banco de dados serão reduzidos.

Se você reduzir um arquivo, somente o arquivo escolhido será reduzido.

Você só precisa usar o comando Encolher banco de dados. Mas geralmente não é uma boa prática fazer isso e também não é uma prática recomendada.

Se você nos informar qual é o problema que está enfrentando, podemos fornecer mais informações sobre como resolvê-lo.

Raj More
fonte
Oh..issue é que nosso servidor de produção está ficando sem espaço em disco. Adicionando mais disco é ideal, mas eu queria saber o que mais podemos fazer?
0

Provavelmente usamos apenas o arquivo shrink dbcc. sp_helpdb 'databasename' fornece a lista de arquivos de dados e log em um banco de dados.

Clique com o botão direito do mouse no mnagement studio, o arquivo task-> shrink-> fornece quanto% você pode encolher.

seja o que for que reduzimos, ele está disponível de volta no disco como espaço livre.

por exemplo: use 'databasename' dbcc shrinkfile (fileid, 100)

aqui 100 é 100 MB

fileid pode ser obtido no sp_helpdb 'databasename'


fonte