¿Cuál es la diferencia entre Shrink Database y File?

33
DBCC ShrinkDatabase()
DBCC ShrinkFile()
  1. ¿Necesito ejecutar ambos comandos DBCC para reducir la base de datos?
  2. ¿Cuál es la diferencia entre estos dos anteriores?
Paul White dice GoFundMonica
fuente

Respuestas:

36

Simplemente...

  • DBCC ShrinkDatabase(): reducir todos los archivos
  • DBCC ShrinkFile(): solo un archivo

Por ejemplo, es posible que tenga un problema de copia de seguridad de registro y se haya descontrolado para que pueda ejecutarlo DBCC ShrinkFile().

Usted casi nunca se utiliza ShrinkDatabase.

Antes de considerar usar cualquiera de los comandos, lea el blog de Paul Randal sobre la reducción .

No reduciría ninguno de los archivos (mdf, ldf) a menos que hubiera una razón clara. Los archivos son del tamaño que tienen porque deben ser. Los blogs que sugieran hacerlo como parte del mantenimiento regular probablemente no entiendan cómo funciona SQL Server.

gbn
fuente
2
Gracias hombre. tienes razón. Acabo de leer el blog de Brent Ozar ... él está literalmente jurando en su blog "Deja de reducir los archivos de tu base de datos. En serio. Ahora".
Y cuando está haciendo lo mismo, ¿por qué hay diferentes argumentos?
Stefan Steinegger
2

Una base de datos predeterminada tiene dos archivos.

MyDb.MDF y MyDb.LDF

El archivo MDF es el archivo de datos donde reside la partición primaria. Dependiendo de sus necesidades, puede particionar una base de datos en múltiples archivos. Esto se hace para que los datos (tablas simples o múltiples) puedan abarcar múltiples archivos que generalmente se colocan en discos duros separados para lograr un mayor rendimiento.

Si reduce una base de datos, todos los archivos asociados con esa base de datos se reducirán.

Si reduce un archivo, solo se reducirá el archivo elegido.

Solo necesita usar el comando Reducir base de datos. Pero generalmente no es una buena práctica hacer esto y tampoco es una práctica recomendada.

Si nos dice cuál es el problema que está experimentando, podemos brindarle más información sobre cómo resolverlo.

Raj Más
fuente
Oh ... el problema es que nuestro servidor de producción se está quedando sin espacio en disco. Agregar más disco es ideal, pero me preguntaba qué más podemos hacer.
0

Lo más probable es que usemos solo dbcc shrinkfile. sp_helpdb 'databasename' proporciona la lista de datos y archivos de registro en una base de datos.

haga clic derecho en el estudio de gestión, tareas-> reducir-> archivo proporciona cuánto% puede reducir.

cualquier cosa que reduzcamos, está disponible de nuevo en el disco como espacio libre.

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

aquí 100 es 100 MB

fileid puede obtener de sp_helpdb 'databasename'


fuente