To maximize transaction throughput and prevent lock escalations during DELETE operations, SQL Server marks tuples as ghosts rather than deallocating page slots immediately.
The background Ghost Cleanup Task sweeps pages every 10 seconds. However, heavy delete batches or long-running transactions stall cleanup, inflating page counts, degrading index scan speed, and causing index bloat.