Udostępnij za pośrednictwem


Zmniejszanie bazy danych

Usunięcie nieużywanych stron można ograniczyć każdego pliku w bazie danych.Mimo że Database Engine wykorzystywane ponownie miejsce skutecznie, jest czas, gdy plik nie jest już musi być tak duży, jak jeden raz; zmniejszania pliku następnie będzie to konieczne. Pliki dziennik transakcji i dane mogą być ograniczone lub ściągnąć.Pliki bazy danych mogą być ręcznie, ściągnąć grupowo lub pojedynczo, lub w bazie danych zestaw tak, aby zmniejszyć automatycznie w określonych odstępach czasu.

Pliki są zawsze ściągnąć od zakończenia.Na przykład, jeśli masz plik 5 GB i określić 4 GB jako target_size w instrukcja SHRINKFILE DBCC Database Engine będzie wolnego tyle miejsca ile może z ostatnich 1 GB pamięci w pliku. Jeśli nie ma stron używanych w części pliku zwolnione, Database Engine najpierw umieszcza stron do części pliku, są zachowywane. Można tylko zmniejszyć bazy danych do miejsca, gdzie nie ma żadnych pozostałego wolnego miejsca.Na przykład, jeśli 5 GB bazy danych ma 4 GB danych i określ 3 GB jako target_size deklaracji SHRINKFILE DBCC tylko 1 GB zostanie zwolniona.

Automatyczne bazy danych, zmniejszanie

Gdy AUTO_SHRINK opcję Baza danych została zestaw on Database Engine automatycznie zmniejsza bazy danych, które nie ma wolnego miejsca. Ta opcja jest zestaw przy użyciu instrukcja ALTER DATABASE.Domyślnie jest zestaw na OFF.The Database Engine periodically examines the space usage in each database.Jeśli baza danych ma AUTO_SHRINK opcji zestaw on Database Engine Zmniejsza rozmiar plików w bazie danych. To działanie występuje w tle i nie ma wpływu na żadnych działań użytkownika w bazie danych.

Aby ustawić bazy danych w celu zmniejszenia automatycznie

ALTER DATABASE języka Transact-SQL)

Ręczne bazy danych, zmniejszanie

Można ręcznie zmniejszyć bazy danych lub plików w bazie danych za pomocą instrukcja SHRINKDATABASE DBCC lub instrukcja SHRINKFILE DBCC.Jeśli instrukcja SHRINKDATABASE DBCC lub SHRINKFILE DBCC nie można odzyskać określonego miejsca w pliku dziennika, w instrukcji wyda komunikat informacyjny, który informuje o tym, jakie czynności należy wykonać, aby kwalifikujących się można zwolnić więcej miejsca na.Aby uzyskać więcej informacji dotyczących zmniejszania plików dziennika Zobacz Shrinking the Transaction Log.

DBCC SHRINKDATABASE i SHRINKFILE DBCC operacje mogą zostać zatrzymane w dowolnym punkcie w procesie, a wszelkie Praca wykonana zostanie zachowane.

W przypadku korzystania z instrukcja SHRINKDATABASE DBCC, nie może zostać zmieniona całej bazy danych, aby się nieco różnić od oryginalnego rozmiaru.W związku z tym jeśli baza danych została utworzona za pomocą o rozmiarze 10 MB i wzrósł do 100 MB, najmniejszą bazy danych może być ograniczona do jest 10 MB, nawet wtedy, gdy wszystkie dane w bazie danych zostały usunięte.

Można jednak zmniejszyć poszczególnych plików baz danych na mniejszy niż ich rozmiar początkowy za pomocą instrukcja SHRINKFILE DBCC.Każdy plik musi zmniejszyć indywidualnie, zamiast próby zmniejszyć całej bazy danych.

Uwaga

Dziennik bazy danych lub transakcji podczas bazy danych nie może zostać zmieniona lub dziennik transakcji jest ich kopii zapasowej.I odwrotnie nie można utworzyć bazy danych lub kopia zapasowa dziennik transakcji podczas próby zmniejszyć dziennika bazy danych lub transakcję.

Aby zmniejszyć bazy danych

Aby zmniejszyć danych lub pliku dziennika

Zmniejszanie dziennik transakcji

Rozwiązano granice, z których może być ściągnąć pliku dziennik transakcji.Rozmiar plików dziennika wirtualnego w dzienniku określa możliwości zmniejszenia rozmiaru.W związku z tym w pliku dziennika może być nigdy nie ściągnąć rozmiar mniejszy niż wirtualny plik dziennika.Ponadto zmniejsza się w pliku dziennika w odstępach równych rozmiar wirtualny plik dziennika rozmiar.Na przykład plik dziennik transakcji o rozmiarze 1 GB może składać się z pięciu wirtualnych plików dziennika 200 MB.Zmniejszanie pliku dziennik transakcji powoduje usunięcie nieużywanych wirtualnych plików dziennika, ale pozostawia przynajmniej dwa pliki dziennika wirtualnych.Ponieważ każdy plik dziennika wirtualnego, w tym przykładzie jest 200 MB, dziennik transakcji można zmniejszyć tylko do minimum 400 MB i wyłącznie w przyrostach 200 MB.Aby można było zmniejszyć rozmiar pliku dziennika transakcji, utworzyć dziennik transakcji małych i umożliwiają go powiększyć automatycznie, zamiast tworzyć plik dziennika transakcji dużych od razu.

Operacja SHRINKDATABASE DBCC lub SHRINKFILE DBCC natychmiast próbuje zmniejszyć pliku dziennik transakcji do żądanego rozmiaru (podlegających zaokrąglaniu).Przed zmniejszyć plik, aby zmniejszyć rozmiar dziennika logicznych i oznaczyć jako nieaktywne wirtualnego dzienników, które nie posiadają dowolnej części logicznych dziennika należy wykonać kopię zapasową pliku dziennika.Aby uzyskać więcej informacji zobaczShrinking the Transaction Log.

Najważniejsze wskazówki

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

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

  • Większość baz danych wymaga trochę wolnego miejsca na regularne codziennej pracy.Należy zauważyć, że rozmiar bazy danych powiększa się ponownie podczas wielokrotnego zmniejszyć bazy danych, oznacza to, że miejsca, które było ściągnąć jest wymagane dla zwykłych działań.W takich przypadkach wielokrotnie zmniejszania bazy danych jest operacją nieużywanego.

  • Operacja zmniejszania stanu fragmentacji indeksów w bazie danych nie zostaną zachowane, a na ogół wzrasta fragmentacji stopniu.Na przykład użytkownik powinien nie zmniejszyć pliku bazy danych lub dane po Odbudowa indeksów.Jest to powód innym nie, aby zmniejszyć wielokrotnie w bazie danych.

  • Jeśli użytkownik nie ma określonych wymagań, nie należy ustawiać AUTO_SHRINK opcję bazy danych na ON.

Wiersz wersji na poziomy izolacji i zmniejszanie operacji

Jest możliwe dla operacji zmniejszania, które mają być blokowany przez transakcję, która jest uruchomiona w ramach poziom izolacji na przechowywanie wersji wiersza.Na przykład jeżeli operacja usuwania dużych, działający w wierszu na przechowywanie wersji poziom izolacji jest w toku podczas wykonywania operacji bazy danych DBCC zmniejszyć Operacja zmniejszania będzie czekać na zakończenie przed zmniejszanie pliki operacji usuwania.W takim przypadku SHRINKFILE DBCC i SHRINKDATABASE DBCC operacji drukowania poza komunikat informacyjny (5202 dla SHRINKDATABASE) i 5203 dla SHRINKFILE błędu programu SQL Server, rejestrowanie co pięć minut w pierwszej godziny, a następnie co godzinę po.Aby uzyskać więcej informacji zobaczDBCC SHRINKDATABASE (Transact-SQL).