I actually know the problem. Its related to the 6+ triggers that execute and the dozens of huge stored procedures that those triggers execute. The functionality is needed for the table to work but makes each save take 3+ seconds on a fast machine. Which means that 4 saves = 3 x 4 = 12 seconds, etc. This is what I'm fighting against.
The database is consistently slow with a database of 60 MBs on a disk with 100s of GBs of space and no fragmentation or any other outside factor. Its a programming issue with the SQL in the DB.
The problem is its not my job to fix it, actually its especially not my job and I will get crushed if I try to fix it. So I need to make it appear like I have more speed than is really there. Which is why I came up with the delayed save idea.
I was thinking overnight, this has got to be easy with LLBLGen, there has to be like 3 or 4 lines of code that would generically deserialize and save into the database right? Then if I wanted to check for changes I could write some fancy compare process right?
Dirty flags are maintained through a serialization?