Can lowering fill factor result in more page splits?

When you have lots of page splits caused by random middle-of-BTree inserts, your pages will naturally average around 65%* full. Split pages start at 50% full and any that fill up past 100% get split back down to 50%.

So rebuilding your index with a fill factor of 85% might temporarily increase page splits, just not as much as rebuilding with a fill factor of 100%

*Why not 75%? I think it's because each split page covers half the value range of the original page, the new pages fill up half as fast as the original page.


It's really not possible that changing the fill factor would cause more page splits, assuming that you are measuring the page split rate immediately after a 100% fill factor rebuild/reorg vs. an 85% fill factor rebuild/reorg. It will be difficult, if not impossible, to find an authoritative reference that states this explicitly, but any accurate discussion on this topic states it implicitly. If page splits have increased on your system, it is simply due to the required indexing of the data that has been added or modified.

It is important to note (as you made no mention of it) that you will need to rebuild or reorganize the clustered index in order for the fill factor to actually do anything. The fill factor is only used when an index is created, rebuilt, or reorganized--it does not affect how much data is put into new pages.

As David Browne points out in his answer, if your pages have been splitting a lot, there are already a lot of pages that have significant free space in them. After a page split, there will be two pages about 50% full. When you reorg/rebuild with a fill factor, all of the pages end up 85% full, so you may have actually reduced the average amount of free space in the pages.

Please see Specify Fill Factor for an Index, and Kendra Little has a good article that I would also recommend on this topic at 5 Things About Fillfactor.

Also, I might add that if the page splits are not really causing a problem (user pain, etc.) then it might not be worth "fixing." When you're dealing with third-party applications or things that are out of maintenance, it's usually worth considering the option to ignore some of the inefficient operations unless they are truly causing a problem.