Wrapping a sequence of object updates inside a transaction can make a huge difference to performance.
When an object is updated, it is marked as "dirty" and added to a commit list.
Even in short transactions, the GPO linking structures will frequently update
the same object several times. But, if this is within a transaction, then normally only
one update to disk will be made.
In the case of long lived transactions with thousands or even millions of updates, it is not feasible to buffer all updates until the final commit.
The objective of scalable performance and resource usage, requires an incremental strategy. Statistics indicate that this strategy works very well.
Both the commit list of "dirty" objects and the "dirty" index nodes are written incrementally when some threshold is exceeded.
Notwithstanding the above comments, a number of benchmarks have been run on a 1Ghz PIII laptop delivering over 5000 transactions per second for simple updates.
These figures should give confidence to anyone considering using GPO
in a Web Application context.