sp_clean_db_free_space (Transact-SQL)
- artykuł
- 01/29/2021
- 2 protokół do czytania
-
- m
- c
- r
- p
- M
-
+4
dotyczy: SQL Server (Wszystkie obsługiwane wersje)
usuwa informacje pozostawione na stronach bazy danych z powodu procedur modyfikacji danych w SQL Server. sp_clean_db_free_space czyści wszystkie strony we wszystkich plikach bazy danych.
konwencje składni Transact-SQL
składnia
sp_clean_db_free_space 'database_name' 'delay_in_seconds' ]
argumenty
@dbname = 'nazwa_ bazy danych’
to nazwa bazy danych do czyszczenia. dbname jest sysname i nie może być NULL.
@cleaning_delay = 'delay_in_seconds’
określa interwał opóźnienia między czyszczeniem stron. Pomaga to zmniejszyć wpływ na system I / O. delay_in_seconds jest int z wartością domyślną 0.
Zwraca wartości kodu
0 (sukces) lub 1 (błąd)
uwagi
operacje usuwania z tabeli lub operacje aktualizacji, które powodują przesunięcie wiersza, mogą natychmiast zwolnić miejsce na stronie, usuwając odwołania do wiersza. Jednak w pewnych okolicznościach wiersz może fizycznie pozostać na stronie danych jako rekord widmo. Rekordy duchów są okresowo usuwane przez proces w tle. Te pozostałe dane nie są zwracane przez silnik bazy danych w odpowiedzi na zapytania. Jednak w środowiskach, w których zagrożone jest fizyczne bezpieczeństwo danych lub plików kopii zapasowych, można użyć sp_clean_db_free_space
do czyszczenia tych rekordów duchów. Aby wykonać tę operację dla każdego pliku bazy danych, użyj sp_clean_db_file_free_space (Transact-SQL).
czas potrzebny do uruchomienia sp_clean_db_free_space zależy od rozmiaru pliku, dostępnego wolnego miejsca i pojemności dysku. Ponieważ działanie sp_clean_db_free_space
może znacząco wpłynąć na aktywność we/wy, zalecamy uruchomienie tej procedury poza zwykłymi godzinami pracy.
przed uruchomieniem sp_clean_db_free_space
zalecamy utworzenie pełnej kopii zapasowej bazy danych.
powiązana procedura składowana sp_clean_db_file_free_space może wyczyścić pojedynczy plik.
uprawnienia
wymaga członkostwa w roli bazy danych db_owner
.
przykłady
poniższy przykład usuwa wszystkie pozostałe informacje z bazy danych AdventureWorks2012
.
USE master; GO EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2012';
Zobacz także
procedury składowane silnika bazy danych (Transact-SQL)
Przewodnik po procesie czyszczenia duchów
sp_clean_db_file_free_space (Transact-SQL)