Zmniejszania bazy danych

Aby usunąć nieużywane strony może być zmniejszona każdego pliku w bazie danych.Chociaż Aparat baz danych będzie efektywnie wykorzystuje ponownie miejsca, czasami, gdy plik nie musi być tak duży jak jeden raz; zmniejszanie pliku następnie niezbędne może okazać się.Pliki dzienników transakcji i dane mogą być zmniejszone lub ściągnąć.Pliki bazy danych można ściągnąć ręcznie, jako grupa lub indywidualnie, lub bazy danych zestaw tak, aby zmniejszyć automatycznie w określonych odstępach czasu.

Pliki są zawsze ściągnąć od końca.Na przykład, jeśli plik 5 GB i określić 4 GB jako target_size w instrukcja DBCC SHRINKFILE Aparat baz danych będą wolne tyle miejsca ile może od ostatniego 1 GB pliku.Jeśli istnieją strony używane w części pliku zwolnione, Aparat baz danych najpierw ponownie przydziela stron do części pliku są zachowywane.Bazy danych można zmniejszyć jedynie do punktu, gdzie nie ma żadnych pozostałego wolnego miejsca.Na przykład 5 GB bazy danych ma 4 GB danych i określ 3 GB jako target_size z DBCC SHRINKFILE instrukcja, zostanie zwolniona tylko 1 GB.

Automatyczne bazy danych, zmniejszając

Gdy AUTO_SHRINK została opcja bazy danych zestaw on, Aparat baz danych automatycznie zmniejsza baz danych, które mają wolne miejsce.Opcja ta jest zestaw przy użyciu instrukcja ALTER DATABASE.Domyślnie jest zestaw do OFF. Aparat baz danych Okresowo bada wykorzystanie miejsca w każdej bazie danych.Jeśli baza danych zawiera AUTO_SHRINK opcji zestaw on, Aparat baz danych zmniejsza rozmiar plików w bazie danych.To działanie występuje w tle i nie narusza żadnych działań użytkownika w bazie danych.

Aby zestaw bazy danych, aby zmniejszyć automatycznie

ALTER DATABASE (Transact-SQL)

Ręczne bazy danych, zmniejszając

Można ręcznie zmniejszać bazy danych lub plików w bazie danych przy użyciu instrukcja DBCC SHRINKDATABASE lub instrukcja DBCC SHRINKFILE.Jeśli instrukcja DBCC SHRINKDATABASE lub DBCC SHRINKFILE nie można odzyskać określonego miejsca w pliku dziennika, instrukcja wyda komunikat informacyjny, wskazującą, jakie akcja należy wykonać, aby zwiększyć ilość miejsca kwalifikujących się zwolniona.Aby uzyskać więcej informacji na temat zmniejszania plików dziennika, zobacz Zmniejszanie dziennika transakcji.

DBCC SHRINKDATABASE i DBCC SHRINKFILE operacji może być zatrzymana na każdym etapie procesu i wszelkich Praca wykonana jest zachowywana.

Korzystając z instrukcja DBCC SHRINKDATABASE, nie można zmniejszyć całej bazy danych, być mniejszy niż jego oryginalnego rozmiaru.Dlatego baza danych została utworzona o rozmiarze 10 MB, wzrósł do 100 MB najmniejszą bazy danych może być zmniejszona do jest 10 MB, nawet jeśli usunięto wszystkie dane w bazie danych.

Można jednak zmniejszyć poszczególnych plikach bazy mniejszy niż ich rozmiar początkowy przy użyciu instrukcja DBCC SHRINKFILE.Każdy plik musi zmniejszyć indywidualnie, zamiast zmniejszać całej bazy danych.

Ostrzeżenie

Nie można zmniejszyć bazy danych lub dziennika transakcji podczas bazy danych lub dziennika transakcji jest teraz kopię zapasową.Odwrotnie nie można utworzyć bazy danych lub kopia zapasowa dziennika transakcji podczas próby zmniejszania bazy danych lub dziennika transakcji.

Aby zmniejszyć bazy danych

Aby zmniejszyć danych lub pliku dziennika

Zmniejszanie dziennika transakcji

Rozwiązano granice, z których można ściągnąć plik dziennika transakcji.Rozmiar plików dziennika wirtualnych w dzienniku określa możliwe redukcje wielkości.Dlatego pliku dziennika można ściągnąć nigdy rozmiar mniejszy niż wirtualny plik dziennika.Ponadto plik dziennika jest zmniejszone wielokrotnością rozmiaru wirtualny plik dziennika rozmiar.Na przykład plik dziennika transakcji, 1 GB może składać się z pięciu wirtualnych plików dziennika 200 MB.Zmniejszanie pliku dziennika transakcji Usuwa nieużywane wirtualnych plików dziennika, ale pozostawia przynajmniej dwa pliki dziennika wirtualnych.Ponieważ każdy wirtualny plik dziennika w tym przykładzie jest 200 MB, dziennik transakcji można ograniczyć tylko do minimum 400 MB i przyrostami 200 MB.Możliwość zmniejszenia mniejszy rozmiar pliku dziennika transakcji, utworzyć dziennik transakcji małych i pozwól rozwija się automatycznie, zamiast tworzenia pliku dziennika transakcji dużych wszystkie naraz.

Operacja DBCC SHRINKDATABASE lub DBCC SHRINKFILE natychmiast próbuje zmniejszyć żądanego rozmiaru (z zastrzeżeniem zaokrąglania) pliku dziennika transakcji.Należy kopia zapasowa pliku dziennika przed zmniejszania pliku zmniejszyć rozmiar dziennika logicznych i oznaczyć jako nieaktywnych dzienniki wirtualnych, które nie posiadają żadnej części logicznych dziennika.Aby uzyskać więcej informacji, zobacz Zmniejszanie dziennika transakcji.

Najważniejsze wskazówki

Planując zmniejszania bazy danych lub pliku, należy wziąć pod uwagę następujące informacje:

  • Operacja zmniejszania jest najbardziej skutecznym po operacji, która tworzy partii nieużywane miejsce, takie jak tabela obcięciu lub operację.

  • Większość baz danych wymaga regularnych codziennej trochę wolnego miejsca.Jeśli wielokrotnie zmniejszania bazy danych i Zauważ, że rozmiar bazy danych powiększa się ponownie, to wskazuje, że obszar został ściągnąć jest wymagane dla regularnych operacji.W takich przypadkach wielokrotnie zmniejszania bazy danych jest nieużywanego operacji.

  • Operacja zmniejszania nie zachowuje stan fragmentacji indeksów w bazie danych i zazwyczaj zwiększa fragmentacji stopniu.Nie należy na przykład zmniejszyć pliku bazy danych po Odbudowa indeksów.Jest to innym powodem nie wielokrotnie zmniejszania bazy danych.

  • Jeśli nie ma konkretnego wymogu nie zestaw na opcję bazy danych AUTO_SHRINK.

Wiersz wersji na podstawie poziomów izolacji i zmniejszanie operacji

Jest możliwe dla operacji zmniejszania zablokowane przez transakcję, która działa w obszarze poziom izolacji oparte na wersji wiersza.Na przykład jeśli operacja dużych delete działa wiersza na podstawie wersji poziom izolacji jest w toku podczas wykonywania operacji DBCC zmniejszyć w bazie danych operacji zmniejszenia będzie czekać na zakończenie przed zmniejszania plików operacji usuwania.W takim przypadku, operacje DBCC SHRINKFILE i DBCC SHRINKDATABASE wydrukować komunikat informacyjny (5202 dla SHRINKDATABASE i 5203 dla SHRINKFILE) do programu SQL Server dziennik błędów co pięć minut w pierwszej godziny i następnie co godzinę po.Aby uzyskać więcej informacji, zobacz DBCC SHRINKDATABASE (Transact-SQL).