Поделиться через


sp_clean_db_file_free_space (Transact-SQL)

применимо к:SQL ServerУправляемому экземпляру SQL Azure

Удаляет остаточную информацию на страницах данных. sp_clean_db_file_free_space очищает все страницы только в одном файле базы данных.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_clean_db_file_free_space
    [ @dbname = ] N'dbname'
    , [ @fileid = ] fileid
    [ , [ @cleaning_delay = ] cleaning_delay ]
[ ; ]

Аргументы

[ @dbname = ] N'dbname'

Имя базы данных для очистки. @dbname — sysname, без значения по умолчанию.

[ @fileid = ] fileid

Идентификатор файла данных для очистки. @fileid не используется без значения по умолчанию.

[ @cleaning_delay = ] cleaning_delay

Задаёт интервал задержки перед очисткой каждой страницы, в секунды. @cleaning_delay имеет значение int с значением по умолчанию0. Эта задержка помогает снизить нагрузку на систему ввода-вывода за счёт увеличения продолжительности процесса очистки.

Значения кода возврата

0 (успешно) или 1 (сбой).

Замечания

sp_clean_db_file_free_space Система хранимого процесса перемещает все строки на странице, включая призрачные записи, если они есть, в начало страницы, а затем инициализирует оставшуюся часть пространства данных на странице с нулевой инициализацией. В средах, где под угрозой находится физическая безопасность файлов данных или базового хранилища, вы можете использовать эту сохранённую процедуру, чтобы гарантировать, что в файлах данных или хранении не осталось никаких остаточных удалённых данных.

Время, необходимое для запуска sp_clean_db_file_free_space , зависит от размера файла данных, количества используемых страниц и возможностей ввода/вывода диска. Поскольку бег sp_clean_db_file_free_space может значительно увеличить активность ввода-вывода, мы рекомендуем проводить эту процедуру вне обычных часов работы.

Перед запуском sp_clean_db_file_free_spaceрекомендуется создать полную резервную копию базы данных.

Для выполнения этой операции для всех файлов данных в базе данных используйте sp_clean_db_free_space.

Разрешения

Требуется членство в роли базы данных db_owner .

Примеры

В следующем примере выполняется очистка всех остаточных данных в первичном файле данных базы данных AdventureWorks2025.

USE master;
GO

EXECUTE sp_clean_db_file_free_space
    @dbname = N'AdventureWorks2022',
    @fileid = 1;