• I love this thread. Just reading all the advice from experts is awesome. I am no expert but will add my 2 cents.

    My company is moving to a SQL 2016 server and we are utilizing column store indexes. With column store indexes you do not specify a key. So no primary key at all. The column store index is a completely different beast.

    I will say and I have proof that partitioning a column store index will benefit your queries. This assumes that you are partitioning by what you mostly filter by in the WHERE clause. For us it was a time dimension. If you partition on a time dimension and have a select statement that only needs say 4 years of day, by using partitioning sql server only goes to those partitions it needs. If you do not implement partitioning it will scan all.

    You can try this and see in the execution plan. Partitioning and Clustered Column store to me go hand and hand.

    But that is very small percentage and most companies have not implemented or using columns store yet.