We are hosted on ACC v7 build 8894. While the campaign workflows are getting executed and when the interim run results option is checked, there are quite a few temp tables that get created. These workflows don't get dropped (by the daily OOB cleanup workflow) even after the end user has unchecked that option after the workflow has finished running. They continue to stay in the database and will only get dropped if you disable all activities of that workflow, run the workflow again that has a new branch comprising of only Start --> End. Unfortunately, end users don't care of temp tables and don't perform this and hence a lot of unwanted temp tables continue to lurk in the database taking a hit on performance.
Is there an easier way to identify such orphan temp tables and drop them? Obviously, we could exclude the temp tables that we need to preserver (eg: Lists or Deliveries).
So with all workflow changes, just changing a setting and saving it doesn't change the underlying workflow job. The workflow itself would need to be restarted in order for the temp table to be released. Additionally, even after this the workflow the cleans out the old temp workflow data is the "Database Cleanup" workflow which only runs daily.
Also if you are still seeing temp data being stored, workflows in a paused state or running without an End activity will also retain temp data.
Temp tables will not automatically cleaned when you unchecked the interim run results option after workflow finished, as the temp tables are already created so un-checking will not effect anything. You need to ask end users to follow best practices.
You can create a utility workflow to list all workflows where this option is checked and send an email to admins/operators who can see this list in their inbox and take action, or inform end users to take action. This is not direct solution, but at least you will get an alerts email on daily or weekly basis.