Columnstore index architecture

The following example creates a table with columns of different data types.

The following example creates a table with columns of different data types.

In the following filtered index definition, column

is implicitly converted to an integer data

type for comparing it to the constant 1. This generates error message 10611 because the

conversion occurs on the left-hand side of the operator in the filtered predicate.

The solution is to convert the constant on the right-hand side to be of the same type as

column

, as seen in the following example:

Moving the data conversion from the left side to the right side of a comparison operator might

change the meaning of the conversion. In the previous example, when the

operator

was added to the right side, the comparison changed from an

comparison to a

comparison.

A

columnstore index

is a technology for storing, retrieving, and managing data by using a

columnar data format, called columnstore. For more information, see

Columnstore indexes:

overview.

For version information and to find out what’s new, visit

What’s new in columnstore indexes.

Knowing these basics makes it easier to understand other columnstore articles that explain

how to use this technology effectively.

columnstore

rowstore

deltastore

rowgroup

b
b

CONVERT

CREATE
TABLE dbo.TestTable (
a
INT
,
b VARBINARY(4)
);
CREATE
NONCLUSTERED
INDEX
TestTabIndex
ON dbo.TestTable (a, b)
WHERE b = 1;
CREATE
INDEX
TestTabIndex
ON dbo.TestTable (a, b)
WHERE b =
CONVERT (VARBINARY(4), 1);