Condividi tramite


sp_clean_db_free_space (Transact-SQL)

Si applica a:SQL ServerIstanza gestita di Azure SQL

Rimuove le informazioni residue nelle pagine dati. sp_clean_db_free_space Pulisce tutte le pagine in tutti i file dati del database.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @dbname = ] N'dbname'

Nome del database da pulire. @dbname è sysname, senza impostazione predefinita.

[ @cleaning_delay = ] cleaning_delay

Specifica un intervallo da ritardare prima della pulizia di ogni pagina, in secondi. @cleaning_delay è int, con il valore predefinito 0. Questo ritardo aiuta a ridurre il carico sul sistema I/O a scapito di allungare la durata del processo di pulizia.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

La sp_clean_db_free_space procedura di memoria di sistema sposta tutte le righe di una pagina, inclusi i record fantasma se presenti, all'inizio della pagina, e poi inizializza a zero il resto dello spazio dati sulla pagina. In ambienti in cui la sicurezza fisica dei file dati o dello storage sottostante è a rischio, si può utilizzare questa procedura di archiviazione per garantire che non rimangano dati residui cancellati nei file o nell'archiviazione.

Il tempo necessario per l'esecuzione sp_clean_db_free_space dipende dalla dimensione dei file dati, dal numero di pagine utilizzate nei file e dalle capacità di I/O del disco. Poiché correre sp_clean_db_free_space può aumentare significativamente l'attività I/O, consigliamo di eseguire questa procedura al di fuori degli orari abituali.

Prima di eseguire sp_clean_db_free_space, è consigliabile creare un backup completo del database.

Per eseguire questa operazione per ogni file di database, usare sp_clean_db_file_free_space.

Autorizzazioni

Richiede l'appartenenza al ruolo del db_owner database.

Esempi

Il seguente esempio elimina tutti i dati residui dal AdventureWorks2025 database.

USE master;
GO

EXECUTE sp_clean_db_free_space @dbname = N'AdventureWorks2022';