One thing I often notice when reviewing deployments of Microsoft CRM is that the tables used to store records regarding workflow and async processes can get very large; specifically the AsyncOperationBase and WorkflowLogBase tables. By default, the records in these tables are stored indefinitely, when in fact after a point in the time business value of the information may not justify the extra space in the database. If a lot of workflow is being used in the deployment, these tables can grow quickly and can sometimes cause performance issues. There is some information available in KB articles on how a couple of registry keys can change the way these records are handled. The video below shows how these keys affect the records and how this has changed a bit in CRM 2011. Links to the KB articles explained in the video are also below. Whether or not these records are stored or removed will need to be a decision made for each deployment individually as each customer has different business rules. However in most cases, at some point it will make sense to remove some of these records.
I'd be interested in knowning the recommended approach to how this should be managed for CRM Online scenarios? With costs associated with database size, it may become an important factor for some customers, especially where a lot of workflow and async operations are configured.
Are MS including these tables in their usage model, are there already processes in place to manage this, if so what is the default retention policy?
With CRM 2011 (Online and Onprem), you have the ability through the application to specify whether or not completed workflow jobs are deleted. This is set on the workflow itself so each workflow can be different. So this can be user-specified through the UI without the need to update any tables directly. The decision on whether or not to remove completed workflow records will be a business decision based on the need to track completed workflows. In addition, System Jobs records can be managed through Data Management and Bulk Record Deletion in the CRM Online UI.