Jaka jest różnica między Shrink Database a File?

33
DBCC ShrinkDatabase()
DBCC ShrinkFile()
  1. Czy muszę uruchomić obie komendy DBCC, aby zmniejszyć bazę danych?
  2. Jaka jest różnica między tymi dwoma powyżej?
Paul White mówi GoFundMonica
źródło

Odpowiedzi:

36

Po prostu...

  • DBCC ShrinkDatabase(): zmniejsz wszystkie pliki
  • DBCC ShrinkFile(): tylko jeden plik

Na przykład możesz mieć problem z kopią zapasową dziennika, który wymknął się spod kontroli, więc możesz uruchomić DBCC ShrinkFile().

Ty prawie nigdy nie używać ShrinkDatabase.

Zanim zaczniesz używać któregoś z poleceń, przeczytaj blog Paula Randala na temat zmniejszania się .

Nie zmniejszyłem żadnego z tych plików (mdf, ldf), chyba że istnieje wyraźny powód. Pliki mają rozmiar, ponieważ muszą być. Wszelkie blogi sugerujące to w ramach regularnej konserwacji prawdopodobnie nie rozumieją, jak działa SQL Server.

gbn
źródło
2
Dzięki stary. masz rację. Właśnie przeczytałem bloga Brenta Ozara. On dosłownie przeklina na swoim blogu „Przestańcie zmniejszać pliki bazy danych. Poważnie. Teraz.”.
A kiedy robi to samo, dlaczego istnieją różne argumenty?
Stefan Steinegger,
2

Domyślna baza danych ma dwa pliki

MyDb.MDF i MyDb.LDF

Plik MDF to plik danych, w którym znajduje się partycja podstawowa. W zależności od potrzeb możesz podzielić bazę danych na wiele plików. Odbywa się to w taki sposób, że dane (pojedyncza lub wiele tabel) mogą obejmować wiele plików, które zwykle są umieszczane na oddzielnych dyskach twardych w celu uzyskania wyższej wydajności.

Jeśli zmniejszysz bazę danych, wszystkie pliki powiązane z tą bazą danych zostaną zmniejszone.

Jeśli zmniejszysz plik, tylko wybrany plik zostanie zmniejszony.

Wystarczy użyć polecenia Zmniejsz bazę danych. Ale zwykle nie jest to dobra praktyka i nie jest to zalecana praktyka.

Jeśli powiesz nam, na czym polega problem, możemy przekazać Ci więcej informacji na temat jego rozwiązania.

Raj More
źródło
Oh .. problem jest taki, że na naszym serwerze produkcyjnym brakuje miejsca na dysku. Dodanie większej ilości dysku jest idealne, ale zastanawiałem się, co jeszcze możemy zrobić?
0

Najprawdopodobniej używamy tylko pliku skurczowego dbcc. sp_helpdb 'nazwa bazy danych' zapewnia listę danych i plików dziennika w bazie danych.

kliknij prawym przyciskiem myszy studio mnagement, zadania-> skurcz-> plik podaje, ile% możesz zmniejszyć.

cokolwiek się kurczy, jest dostępne na dysku jako wolne miejsce.

np .: użyj „nazwa bazy danych” dbcc shrinkfile (fileid, 100)

tutaj 100 to 100 MB

fileid można uzyskać ze sp_helpdb „nazwa bazy danych”


źródło