COMMIT_TABLE is recorded when a thread waits for access to the in-memory portion of the hidden commit table (sys.syscommittab) that underpins Change Tracking. Every transaction that modifies a change-tracked table adds a row to this structure, and the storage engine touches it from several directions: transaction commits, checkpoints, and the periodic automatic cleanup that trims old entries.
No Change Tracking, no meaningful COMMIT_TABLE waits; the wait is effectively a Change Tracking tax meter.
Is It a Problem?
It can be. The known bottleneck pattern is Change Tracking enabled on many tables combined with a workload of many small transactions updating them: every one of those commits queues at the same shared structure. Cleanup falling behind makes the table bigger and the contention worse, and there have been documented cases of syscommittab cleanup problems compounding this.
If this wait ranks on your server, Change Tracking’s scope and hygiene are the questions.
Common Causes
- Change Tracking on many tables with high-frequency small transactions.
- Auto cleanup falling behind, letting
syscommittabgrow (retention period too long for the churn, or cleanup errors in the error log). - Checkpoints and commits contending during load bursts.
What To Do
- Inventory the scope:
sys.change_tracking_tablesshows what is tracked; ask which tables genuinely need it. - Check cleanup health: retention settings per database, and
sys.dm_tran_commit_tablesize trends; a forever-growing commit table means cleanup is losing. - Reduce the transaction churn where possible (batch small updates) or narrow tracking to the tables consumers actually read.
- If Change Tracking is load-bearing at scale, evaluate whether the consumers could move to a design with less per-commit overhead.
How To See It
Rank it against everything else with Get-WaitStatistics; any real presence points directly at Change Tracking scope and cleanup.
Part of the SQL Server Wait Types Library.
Related deep dive: LCK_M_X, LCK_M_S, and LCK_M_U Wait Types.
Leave a Reply