FillFactor behaviour with Source Control
lackadaisql
Posts: 7
Edit: To make this an informative post... ( This is NOT a RedGate problem )
Problem observed: After pulling changes from the Repository to the Database, RedGate Source Control was showing that any new indexes / index changes were already different in the database.... (that is - after applying the updates, the objects were already immediately different)
Originally thought to be due to an incremental RedGate update being applied to SQL Compare (since two DBDevs applied updates and then started seeing the problem)... ...it actually turned out to be completely unrelated (poor timing) - as someone else had changed the default fill factor advanced option on the server.
Solution: Before writing a post on the RedGate forum (*ahem*) - you may want to check the fill factor setting as such:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure
GO
Check out the fill factor setting - and realize that if the run_value is not 0 - the server will assign a fillfactor for you when none is specified... ...which thus shows a difference from the script in the repo. (Note that if a fillfactor is specified in the repo - it will be applied to the DB, and thus no problem would've been noted either).
Note: Changing this configuration setting appears to require a service restart (at least in 2008 R2 and 2012).
Hope this clarifies - and sorry for the confusion...
Problem observed: After pulling changes from the Repository to the Database, RedGate Source Control was showing that any new indexes / index changes were already different in the database.... (that is - after applying the updates, the objects were already immediately different)
Originally thought to be due to an incremental RedGate update being applied to SQL Compare (since two DBDevs applied updates and then started seeing the problem)... ...it actually turned out to be completely unrelated (poor timing) - as someone else had changed the default fill factor advanced option on the server.
Solution: Before writing a post on the RedGate forum (*ahem*) - you may want to check the fill factor setting as such:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure
GO
Check out the fill factor setting - and realize that if the run_value is not 0 - the server will assign a fillfactor for you when none is specified... ...which thus shows a difference from the script in the repo. (Note that if a fillfactor is specified in the repo - it will be applied to the DB, and thus no problem would've been noted either).
Note: Changing this configuration setting appears to require a service restart (at least in 2008 R2 and 2012).
Hope this clarifies - and sorry for the confusion...
Comments
Product Support
Redgate Software Ltd.
E-mail: support@red-gate.com