Based on my experience, there seems to be very little consensus in the community about scheduled database maintenance.
Here's a good starting point.
I commonly see environments where Compact -B runs nightly, but it's actually a good thing to have a bit of (contiguous) whitespace in the database so the on-disk file doesn't have to grow as soon as a new document is added. You don't want to go crazy with it and have a 50-percent utilized database, but somewhere around 10 percent seems reasonable.
Fixup is another area where you may have received some conflicting information in the past. We reviewed the applicability of Fixup as a general maintenance task with members of the Development team, and the consensus is that this is safe to do. I don't think it's necessary to run it regularly, but once a week can help clear up any inconsistencies that might crop up in the database.
What are you running for scheduled maintenance?
Comments (3)
I tend to recommend a minimalist approach. If everything else is in order, a simple compact -B once per week (orchestrated with full backup, if applicable), seems to keep things in check.
The Technote linked below covers a lot of the angles, too:
http://www-1.ibm.com/support/docview.wss?uid=swg27006573
Regarding Compact, I had an entry I posted a while back related to
fragmentation and compacting . In that, I actually recommended
using something like a load compact -c + 10. We all know that
fragmentation causes very poor performance. However, defragging
causes the databases to be even more fragmented because every new
write will likely be to a non-contiguous block on the drive. I've
been pondering this a lot more lately and thinking that allowing
the 10% white space (like you mentioned) is actually a good idea.
Something could even be accomplished by some code to add data to a
database and then delete it so that there's white space. Then
defragmenting that database (using something like defraggler, you
can choose to just defrag a single file at a time) will yield a
contiguous space that will not become fragmented very quickly.
This, coupled with archiving, I believe can be a pretty good boost
in i/o performance. I'm cross-posting this comment at my blog too
for further thoughts...
Yeah, David beat me to it! I think there were a lot of concerns
with previous versions related to DB integrity. So we still see a
good many customers still running fixups fairly regularly (more
than once per week). I don't guess this would hurt, but it would
definitely cause a good bit of overhead for something that's pretty
unnecessary.
just a crosslink to my maintenance script:
http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Domino%20Maintenance%20Script
There are dozen user who use it to install microsoft hotfixes on
the weekend and perform a complete unatteded reboot including some
maintenance.