• How this relates to the real world is this...

    1) No clustered Index = A Heap

    2) Add some Non-clustered indexes to a table and you still have a heap

    3) Add more data with the non-clustered indexes and your heaped table will GROW by leaps and bounds !!

    4) You want to make the table smaller BUT  a heap cannot be defragged! (nothing works, DBCC indexdefrag etc..)

    5) You MUST create a clustered index to force defragmentation

    Moral - NEVER create non-clustered indexes without creating a clustered index first!

    I have come across this knowledge through evaluation of a legacy database which is massive for apparently no reason.  I could not shrink its size no matter what I did.  Only after much reading did I come across the "Heap Gem" of knowledge and was able to cut the DB down to 40% of its original size by adding, yes adding, clustered indexes to the top 30 largest tables.  There were hundreds of tables, dunno what would have happened by adding a CI to all appropriate tables.

    - B