Sdílet prostřednictvím


sp_clean_db_free_space (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Odstraňuje zbytkové informace na datových stránkách. sp_clean_db_free_space vyčistí všechny stránky ve všech datových souborech databáze.

Transact-SQL konvence syntaxe

Syntaxe

sp_clean_db_free_space
    [ @dbname = ] N'dbname'
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

Arguments

[ @dbname = ] N'dbname'

Název databáze k vyčištění. @dbname je sysname, bez výchozího nastavení.

[ @cleaning_delay = ] cleaning_delay

Specifikuje interval, který se zpožďuje před úklidem každé stránky, v několika sekundách. @cleaning_delay je int, s výchozím nastavením 0. Toto zpoždění pomáhá snížit zátěž na I/O systém na úkor prodloužení doby čištění systému.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Poznámky

Procedura sp_clean_db_free_space uložená v systému přesune všechny řádky na stránce, včetně případných duchovních záznamů, na začátek stránky a poté zbytek datového prostoru na stránce inicializuje nulovou inicializací. V prostředích, kde je fyzická bezpečnost datových souborů nebo podkladového úložiště ohrožena, můžete tento uložený postup použít k zajištění, že žádná zbytková smazaná data nezůstanou v datových souborech nebo v úložišti.

Doba potřebná k běhu sp_clean_db_free_space závisí na velikosti datových souborů, počtu použitých stránek v souborech a I/O schopnostech disku. Protože provoz sp_clean_db_free_space může výrazně zvýšit aktivitu I/O, doporučujeme tento postup provádět mimo běžnou provozní dobu.

Před spuštěním sp_clean_db_free_spacedoporučujeme vytvořit kompletní databázovou zálohu.

Pro provedení této operace pro každý databázový soubor použijte sp_clean_db_file_free_space.

Povolení

Vyžaduje členství v databázové db_owner roli.

Examples

Následující příklad vyčistí všechna zbytková data z databáze AdventureWorks2025 .

USE master;
GO

EXECUTE sp_clean_db_free_space @dbname = N'AdventureWorks2022';