I am currently doing some data imports into a legacy system and discovered that this system does not use a single clustered index. A quick Google search introduced me to the concept of HEAP tables and now I am curious in what usage scenarios a HEAP table should be preferred over a clustered table?
As far as I understood a HEAP table would only be useful for audit tables and/or where inserts happen far more often than selects. It would save disk space and disk I/O since there is no clustered index to maintain and the additional fragmentation wouldn’t be a problem because of the very rare reads.
Best Answer
The only valid uses are for
SELECT * INTO..
Staging tables are typically quite flat and truncated before/after use.
Note that a clustered index is typically few small compared to the data size: the data is the lowest level of the index structure.
Heap tables also have problems. At least these:
Also see