There is a common misconception, that MSCRM_CONFIG.HardDelete and MSCRM_CONFIG.SiteWideCleanup SQL jobs are responsible for hard deleting data from CRM organization databases. This is simply not true!
Lets take a look…
HardDelete job (scheduled to run every 60 minutes) calls dbo.p_HardDelete stored procedure in MSCRM_CONFIG database. The procedure is not encrypted and you can peek inside. All it does is hard delete data from several tables in MSCRM_CONFIG database, but not in organization databases!
SiteWideCleanup job (scheduled at 00:00 everyday) simply calls dbo.p_CleanupSiteWideNotifications stored procedure also located in MSCRM_CONFIG database. It’s even simpler procedure and in it’s only line marks all lines in Notification table older that 24 hours.
If those jobs are not responsible for hard deletes, what is? In CRM 3.0 there was special windows services named “Microsoft CRM Deletion Service”, but with CRM 4.0 the responsibility has been move to “Microsoft CRM Asynchronous Processing Service”, the same service that takes care on async plug-in calls, workflows and other asynchronous jobs!
A Microsoft tool called CRM 4 Deployment Job Editor lets you schedule deletion and re-indexing jobs. There is also nice article at ascentium blog that explains how you can forced deletion of rows with deletionstatecode = 2.