Page Cleaning with sp_clean_db_file_free_space and sp_clean_db_free_space

When you download the latest SQL Server 2008 Books Online (January 2009 update) you'll see new entries for the system stored procedures sp_clean_db_file_free_space and sp_clean_db_free_space.  The sp_clean_db_free_space system stored procedure is used to clean up ghost records across all database files in a specified database.  This effects ghost records from INSERT/UPDATEs  that haven't already been cleaned up by background processes. The sp_clean_db_file_free_space performs this same task as sp_clean_db_free_space, except you specify it as the name suggest for a specific file. 

As you could imagine, these procedures are I/O intensive procedures.  I ran a small test on my AdventureWorks2008 database and found that it took about 35 seconds to run for a 262MB database. Looking at the stored procedure definition for sp_clean_db_free_space using EXEC sp_helptext, I saw that this procedure actually calls sp_clean_db_file_free_space for each file in the specified database.  Looking at the definition for sp_clean_db_file_free_space, under the covers it executes the undocumented command DBCC CLEANPAGE for each @dbid , @fileid, and @page.

BOL mentions that these procedures should be used for environments where physical security for the data or backups are at risk.  So this looks like another security tool in your toolbox that you can use in very specific security scenarios.  In the big security picture, I do that that if you are aware that your data or backups are at risk, you should try to address that problem in a more direct fashion via people, processes, and technology.