Jonathan AC Roberts - Sunday, December 17, 2017 10:12 AM
It's not just the reads from disk, which will only occur if the data isn't already cached, and testing makes it look like both a narrow and wide table will perform the same when that occurs because people forget about the eventual writes that must occur. It's the eventual writes to disk that are the real killer even after the table is cached and most people don't measure that or take it into account in their testing.
I absolutely agree on the page splits becoming a potentially major performance and memory issue if the update causes expansion of data in variable width columns.
That being said, one good test is worth a thousand of our expert opinions and I'm working on a demonstration where everything is identical in two tables except one table has a CHAR(1000) column to simulate 100 additional columns. I'll post it all soon.
--Jeff Moden
Change is inevitable... Change for the better is not.