Read only once created so not for OLTP
Cost based optimiser still used to decide to use index or not
Overhead of storage
Several unsupported types in sql 2012 - binary, varcharmax, uniqueidentifier, decimal > 18 digits, datetime > 8 bytes
Batch mode processing uses a new iterator model for processing data a-batch-at-a-time instead of a-row-at-a-time. A batch typically represents about 1000 rows of data. Available in column store only.
CREATE NONCLUSTERED COLUMNSTORE INDEX mycolumnstoreindex ON mytable (col1, col2, col3);
There is no notion of a primary key for a columnstore index.
Typically you will put all the columns in a table in the columnstore index
You can only create one columnstore index on a table.
Creating a columnstore index takes on the order of 1.5 times as long as building a B-tree on the same columns.
If your table has less than one million rows, SQL Server will use only one thread to create the columnstore index, otherwise it will be created as a parallel task.
The base table can have PAGE compression, ROW compression, or no compression
Columnstore indexes use a proprietary data representation based on Vertipaq. It’s not the same as a bitmap index