It is a nice article. Concerning vertical partitioning I'd recommend SQL Refactor. It has a table split refactoring that takes a table, allows you to specify which columns should stay/moved/copied to a new table, what the future relationship will be (1:1, 1:n, m:1), and creates a script for you that
- create the new table
- sets up automatically a primary key on this table (based on shared columns)
- copies unique data into this new table
- removes the necessary columns from the original table
- sets up the foreign keys as specified by the "future relationship"
- rewrites all your stored procedures, views, etc to reference a joined version of these
two new tables (if both of them are needed) or only the relevant table.
More about this at http://www.simple-talk.com/sql/sql-tools/faster-database-development-with-sql-refactor/
Regards,
Andras