12 marca, 2022

sp_clean_db_free_space (Transact-SQL)

  • artykuł
  • 01/29/2021
  • 2 protokół do czytania
    • m
    • c
    • r
    • p
    • M
    • +4
czy ta strona jest pomocna?

Dziękuję.

dotyczy: yes 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.

 ikona odnośnika do tematu 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)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.