Qual è la differenza tra Shrink Database e File?


Risposte:


36

Semplicemente...

  • DBCC ShrinkDatabase(): restringe tutti i file
  • DBCC ShrinkFile(): solo un file

Ad esempio, potresti avere un problema con il backup del registro ed è cresciuto senza controllo, quindi corri DBCC ShrinkFile() .

Non lo usi quasi maiShrinkDatabase .

Prima di prendere in considerazione l'utilizzo di uno dei due comandi, leggi il blog di Paul Randal sulla riduzione .

Ridurrei nessuno dei file (mdf, ldf) a meno che non ci fosse una ragione chiara. I file hanno le dimensioni in quanto devono essere. Qualsiasi blog che suggerisce di farlo come parte della manutenzione regolare probabilmente non capisce come funziona SQL Server.


2
Grazie uomo. hai ragione. Ho appena letto il blog di Brent Ozar ... sta letteralmente imprecando nel suo blog "Smetti di ridurre i file del database. Seriamente. Adesso.".

E quando sta facendo lo stesso, perché ci sono argomenti diversi?
Stefan Steinegger,

2

Un database predefinito ha due file

MyDb.MDF e MyDb.LDF

Il file MDF è il file di dati in cui risiede la partizione primaria. A seconda delle esigenze, è possibile partizionare un database in più file. Questo viene fatto in modo che i dati (tabelle singole o multiple) possano estendersi su più file che di solito vengono messi su dischi rigidi separati per ottenere prestazioni più elevate.

Se si riduce un database, tutti i file associati a quel database verranno ridotti.

Se si restringe un file, solo il file selezionato verrà ridotto.

È sufficiente utilizzare il comando Riduci database. Ma di solito non è una buona pratica farlo e non è nemmeno una pratica raccomandata.

Se ci comunichi qual è il problema che stai riscontrando, possiamo fornirti ulteriori informazioni su come risolverlo.


Oh..issue è che il nostro server di produzione sta esaurendo lo spazio su disco. L'aggiunta di altro disco è l'ideale ma mi chiedevo cos'altro possiamo fare?

0

Molto probabilmente usiamo solo dbcc shrinkfile. sp_helpdb 'databasename' fornisce l'elenco di dati e file di registro in un database.

fare clic con il tasto destro del mouse su mnagement studio, il file task-> riduci-> fornisce la percentuale di% che è possibile ridurre.

qualunque cosa ci restringiamo, è disponibile sul disco come spazio libero.

ad es .: usare 'databasename' dbcc shrinkfile (fileid, 100)

qui 100 è 100 MB

fileid può ottenere da sp_helpdb 'databasename'

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.