RobertKaucher wrote: Just to be clear... When I set "free space" in the GUI to 80 the SQL code sets FILLFACTOR to 80. This is not what I would expect....
FILLFACTOR specifies a percentage that indicates how much free space will be in the leaf level of each index page. When a clustered index is created on a table, SQL Server 2005 does not stuff data wherever it finds space, but it physically rearranges data in order. SQL Server 2005 cannot rearrange data without page split if it does not find free space at an index page. To help SQL Server 2005 accomplish this, there is a need to leave a little space at the leaf level of each page on a clustered index. This free space is called FILLFACTOR.
When a new row is added to a full index page, SQL Server moves approximately half the rows to a new page to make room for the new row. This reorganization is known as a page split. Page splitting can impair performance and fragment the storage of the data in a table. For more information, see Table and Index Architecture.
When creating an index, you can specify a fill factor to leave extra gaps (READ FREE SPACE, MY ASSUMPTION) and reserve a percentage of free space on each leaf level page of the index to accommodate future expansion in the storage of the table's data and reduce the potential for page splits.
The fill factor value is a percentage from 0 to 100 that specifies how much to fill the data pages after the index is created. A value of 100 means the pages will be full and will take the least amount of storage space. This setting should be used only when there will be no changes to the data, for example, on a read-only table. A lower value leaves more empty space on the data pages, which reduces the need to split data pages as indexes grow but requires more storage space.