I know the command clearblockchanges and have used it a lot.
My database is about half a year old.
I have 30 levels, once a month i do go in to the data base and delete all tables that contains junk.
This includes checking each level for greif because after block changes are cleared you cant undo.
It should only keep the last 2-3 records of the block. Because frankly that's all I ever care about. Who just griefed it. Not who modified it 7 months ago.
Maybe auto-prune the map changes when the map ends?