sp_clean_db_free_space (Transact-SQL)
Применимо к:SQL Server
Удаляет оставшиеся сведения на страницах базы данных из-за подпрограмм изменения данных в SQL Server. sp_clean_db_free_space очищает все страницы во всех файлах базы данных.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_clean_db_free_space
[ @dbname = ] 'database_name'
[ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]
Аргументы
@dbname = "database_name"
Имя очищаемой базы данных. dbname — sysname и не может иметь значение NULL.
@cleaning_delay = "delay_in_seconds"
Интервал задержки между операциями очистки страниц. Применение задержки помогает уменьшить нагрузку на систему ввода-вывода. delay_in_seconds имеет значение по умолчанию 0.
Значения кода возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Удаляет операции из таблицы или обновляет операции, которые приводят к перемещению строки, что может немедленно освободить пространство на странице путем удаления ссылок на строку. Но при определенных обстоятельствах строка может физически оставаться на странице данных как фантомная запись. Фантомные записи периодически удаляются фоновым процессом. Эти остаточные данные не возвращаются ядром СУБД в ответ на запросы. Однако в средах, в которых физическая безопасность данных или файлов резервных копий находится под угрозой, можно использовать sp_clean_db_free_space
для очистки этих фантомных записей. Для выполнения этой операции для каждого файла базы данных используйте sp_clean_db_file_free_space (Transact-SQL).
Продолжительность времени, необходимого для выполнения процедуры sp_clean_db_free_space, зависит от размера файла, доступного свободного пространства и емкости диска. Так как выполнение sp_clean_db_free_space
может значительно повлиять на активность ввода-вывода, рекомендуется выполнять эту процедуру за пределами обычных часов работы.
Перед запуском sp_clean_db_free_space
рекомендуется создать полную резервную копию базы данных.
Связанная sp_clean_db_file_free_space хранимая процедура может очистить один файл.
Разрешения
Требуется членство в db_owner
роли базы данных.
Примеры
В следующем примере показано, как очистить всю остаточную информацию в базе данных AdventureWorks2022
.
USE master;
GO
EXEC sp_clean_db_free_space @dbname = N'AdventureWorks2022';
См. также
Хранимые процедуры ядра СУБД (Transact-SQL)
Руководство по очистке призраков
sp_clean_db_file_free_space (Transact-SQL)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по