1 - you've stated there are 'not lots of inserts, updates, deletes', which I read as 'there are some inserts, updates, deletes' in which case I would expect the results of a 'select count(*)' to vary over time; keep in mind that a basic 'select count(*)' won't pick up newly inserted rows in a DOL table where said rows have not yet been committed
2 - how do you know what the 'correct' count should be?
3 - what is the exact query you're running to get the count(*)? is there a WHERE clause? are you using readpast on a DOL table? keep in mind a select/readpast will skip over any rows inside a transaction currently undergoing a delete/update