Forwarded Records in heap tables still puzzle many SQL Server users, years after I first wrote about them. Here is what they are and how to fix them.
Deleting From a Heap: Why Empty Pages Stay Behind
The rows are gone but the table is the same size and scans are just as slow. Here is why, and two ways to fix it.
Count Rows and Indexes for Every Table in SQL Server
To count rows and indexes for every table, one query on the catalog views answers four questions at once: how many tables, which are heaps, how many nonclustered indexes each has, and how many rows each holds. The post tests it on a demo database and explains where the row count comes from.
ALTER TABLE REBUILD: Fixing a Heap Without a Clustered Index
A heap with widening rows collects forwarded records. Here is how to measure them, fix them and know when the fix will not last.
Nonclustered Index Rebuild Quiz: Does a Clustered Rebuild Touch Them?
This Nonclustered Index Rebuild Quiz asks what happens to the other indexes when you rebuild the clustered index. The answer is nothing, and a tested script shows it. It also covers the cases where SQL Server does rebuild them.
Heap Tables: When a Table Without a Clustered Index Hurts
Find heap tables, inspect forwarded records and empty-page behavior, and choose between a clustered index and a planned rebuild.






