• Generally a good article, but the author fell prey to one of the most common errors about clustered indexes.  He states:

    "Do not try to place a clustered index on a column that can be updated or in the table were the INSERT is a frequently issued command and clustered index column is randomly defined.  It will force the engine to physically rearrange pages allocated for the table, which will slow the system down."

    Not quite true...  Yes, inserts in in that situation can cause page splits, but this is not the same as "physically rearranging pages".  The data pages do not need to be physically arranged (on disk) in any particular order, and in fact they are not.  The various pages are linked together via a "double linked list" mechanisim where each page contains a pointer to the next page (logically NOT physically) and to the previous page.  It is this linkage that must be updated and maintained when pages are split.  Maintaining the physical order of pages would indeed be prohibitively expensive and it is not done for that reason.

     

    /*****************

    If most people are not willing to see the difficulty, this is mainly because, consciously or unconsciously, they assume that it will be they who will settle these questions for the others, and because they are convinced of their own capacity to do this. -Friedrich August von Hayek

    *****************/