Adaptive Server version 12.5.0.3 includes the following enhancements to the housekeeper utility:
In versions earlier than 12.5.0.3, one housekeeper performed five tasks. The work is now divided among three separate tasks:
Housekeeper wash task
Housekeeper chores task
Housekeeper garbage collection task
The output for all three tasks appears in the output for sp_who.
Washing buffers is an optional task and runs only at idle times. You can turn off this task using the configuration parameter housekeeper free write percent. The housekeeper wash task is the only housekeeper task for which you use this configuration parameter.
HK_CHORES runs at idle times only and does not use a common configuration parameter. It manages miscellaneous chores, such as:
Automatically flushing table statistics.
Automatically flushing account statistics.
Handling timeout of detached transactions. You can turn off this chore using the configuration parameter dtm detach timeout period.
Checking licence usage. You can turn this task off using the configuration parameter license information.
There are two forms of garbage collection, lazy and aggressive. These terms describe two distinct tests for finding empty pages.
Lazy garbage collection refers to an inexpensive test to find empty pages. This test may not be effective during long-running transactions, and empty pages may accumulate. Lazy garbage collection is inexpensive to use, but can lower performance. Performance is affected by the fragmentation of space allocated to a table, and by the accumulation of empty pages that must be evaluated during queries.
Aggressive garbage collection refers to a sophisticated test for empty pages. This test is more expensive than the lazy garbage collection test, because it checks each deleted row in a page to determine whether that deleting transactions are committed.
Both the delete command and the housekeeper garbage collection task can be configured for aggressive or lazy garbage collection, through the configuration parameter enable housekeeper GC.
The aggressive housekeeper garbage collection self-tunes the frequency with which the housekeeper garbage collection task examines the housekeeper list, so that the frequency of examination matches the rate at which the application generates empty pages.