Eu sei que encolher não é uma boa prática, mas se eu executar apenas ie: dbcc shrinkfile (filename,1024)
, qual é o padrão? notruncate
ou truncateonly
? Não encontrei nada sobre isso na documentação.
NOTRUNCATE Move as páginas alocadas do final de um arquivo de dados para páginas não alocadas na frente de um arquivo com ou sem especificar target_percent. O espaço livre no final do arquivo não é retornado ao sistema operacional e o tamanho físico do arquivo não é alterado. Portanto, se NOTRUNCATE for especificado, o arquivo parecerá não ser reduzido.
NOTRUNCATE é aplicável apenas a arquivos de dados. Os arquivos de log não são afetados.
Esta opção não é compatível com contêineres de grupo de arquivos FILESTREAM.
....
TRUNCATEONLY Libera todo o espaço livre no final do arquivo para o sistema operacional, mas não executa nenhum movimento de página dentro do arquivo. O arquivo de dados é reduzido apenas até a última extensão alocada.
target_size é ignorado se especificado com TRUNCATEONLY.
A opção TRUNCATEONLY não move informações no log, mas remove VLFs inativos do final do arquivo de log. Esta opção não é compatível com contêineres de grupo de arquivos FILESTREAM.
O comportamento padrão é não fazer nenhuma dessas coisas. Ambos os modificadores do
DBCC SHRINKFILE
comando alteram o comportamento padrão.Por padrão,
DBCC SHRINKFILE
moverá os dados para o início do arquivo (nos arquivos de dados) e, em seguida, liberará espaço livre no final do arquivo (nos arquivos de log e nos arquivos de dados).A
NOTRUNCATE
opção apenas moverá os dados para o início do arquivo (em arquivos de dados), sem liberar espaço livre do final do arquivo. Como os arquivos de log não movem dados dentro do arquivo, essa opção não é significativa quando usada em arquivos de log de transações.A
TRUNCATEONLY
opção liberará apenas espaço livre do final do arquivo, sem mover nenhum dado dentro do arquivo de dados. Como os arquivos de log não movem dados dentro do arquivo, esse é , na verdade, o comportamento padrão dos arquivos de log.