1
resposta

Tamanho dos aquivos não mudou

Olá estava acompanhando a aula sobre o tamanho dos arquivos e seu crescimento, porém no meu caso o tamanho dos arquivos não foi alterado, ambos, mdf e ldf permaneceram com 100mb durante todo o processo

além disso o comando SHRINKDATABASE apresentou a seguinte mensagem:

DBCC SHRINKDATABASE: ID do arquivo 1 da ID de banco de dados 8 ignorada porque não há espaço livre suficiente no arquivo para recuperação. DBCC SHRINKDATABASE: ID do arquivo 2 da ID de banco de dados 8 ignorada porque não há espaço livre suficiente no arquivo para recuperação. A execução do DBCC foi concluída. Se o DBCC imprimiu mensagens de erro, entre em contato com o administrador do sistema.

1 resposta

Oii, Vinicius! Tudo bem?

Entendo, o tamanho do log pode ser limitado devido a algumas configurações personalizadas. Por exemplo, caso o tamanho máximo do log estiver configurado para 100MB, o log não irá crescer além desse limite.

Caso você queira verificar o tamanho atual do log de transações, execute o comando:

DBCC SQLPERF(LOGSPACE)

E nessa documentação você pode aprofundar um pouco no tema.

Sobre o comando SHRINKDATABASE, ele tenta reduzir o tamanho do arquivo de banco de dados liberando o espaço não utilizado. Porém, se o arquivo estiver quase cheio ou se o espaço livre não estiver disponível no final do arquivo, o comando não poderá reduzir o tamanho do arquivo. Isso pode ser o motivo pelo qual você está vendo a mensagem de erro "DBCC SHRINKDATABASE: ID do arquivo 1 da ID de banco de dados 8 ignorada porque não há espaço livre suficiente no arquivo para recuperação".

Uma possível solução seria liberar algum espaço no arquivo de banco de dados antes de executar o comando. Isso pode ser feito, por exemplo, excluindo dados desnecessários ou movendo alguns dados para outro arquivo ou banco de dados. Nese artigo, contém o tutorial que você pode seguir.

Outro ponto que é interessante abordar, é que o espaço não esteja sendo liberado porque está retido para futuras transações. Nesse caso, é interessante tentar, também, o comando:

DBCC SHRINKFILE 

No lugar de SHRINKDATABASE. O comando SHRINKFILE permite especificar o tamanho desejado para o arquivo e pode ser mais eficaz para liberar espaço.

Segue um exemplo de sintaxe do comando SHRINKFILE:

DBCC SHRINKFILE (NomeDoArquivo, TamanhoDesejado)

Espero ter ajudado com a sua dúvida. Realize os testes e veja se o código comporta-se como esperado.

Qualquer dúvida, conte conosco no fórum.

Bons estudos, Vinicius!