I think the first step towards "vertical partitioning" is actually "proper normalization of a table".
I also think that people that have the following 3 columns (as identified in the Reddit post you linked to) need to be shot...
First of all, such rows don't belong in the main table... they should be squirreled away in an "archive" table somewhere.
Second, it's not often that I'll use the word but it's stupid to have a separate "IsDeleted" column. The presence of a date in the "DeletedOn" column should be all that you need. If a date isn't present in that column, the row hasn't been deleted.
I'll also state that a ModifiedBy column (which was also present in the linked post) is a huge source of "ExpAnsive Updates" that causes rampant page splits and the resulting heavy load on the log file and the resulting high levels of logical fragmentation. There are multiple methods to handle this (the best way is with INT identifiers) but they do need to be handled especially when it comes to "Ever Increasing Keyed Indexes" where INSERTs are followed by UPDATEs that occur before the next index rebuild. For tables that have existing data, INSERTs will always try to fill pages to 100% which also means that any expansive updates that occur will immediately and certainly cause page splits.
is pronounced "ree-bar
" and is a "Modenism
" for R
First step towards the paradigm shift of writing Set Based code:
________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
"Change is inevitable... change for the better is not".
"Dear Lord... I'm a DBA so please give me patience because, if you give me strength, I'm going to need bail money too!"
How to post code problems
How to Post Performance Problems
Create a Tally Function (fnTally)