Query performance
This article includes recommendati
Analytics Platform System (PDW)
SQL database in Microsoft
Fabric
This article includes recommendations for achieving the fast query performance with
columnstore indexes.
Columnstore indexes can achieve up to 100 times better performance on analytics and data
warehousing workloads, and up to 10 times better data compression than traditional rowstore
indexes. These recommendations help your queries achieve the fast query performance that
columnstore indexes are designed to provide.
Here are some recommendations for achieving the high-performance columnstore indexes are
designed to provide.
In common case in traditional data warehouse, the data is
indeed inserted in time order and analytics is done in time dimension. For example,
analyzing sales by quarter. For this kind of workload, the rowgroup elimination happens
automatically. In SQL Server 2016 (13.x), you can find out number rowgroups skipped as
part of query processing.
If the common query predicate is on a column (for
example,
) unrelated to the insert order, create a rowstore clustered index on column. Then, drop the rowstore clustered index and create a clustered columnstore index. If
you create the clustered columnstore index explicitly using
, the resulting
clustered columnstore index is perfectly ordered on column. If you specify
,
then you see overlap of values across eight rowgroups. For a nonclustered columnstore
index (NCCI), if the table has a rowstore clustered index, the rows are already ordered by
the clustered index key. In this case, the nonclustered columnstore index is also
automatically ordered. A columnstore index doesn’t inherently maintain the order of
rows. As new rows are inserted or older rows are updated, you might need to repeat the
process as the analytics query performance might deteriorate.
C1
C1
MAXDOP = 1
C1
MAXDOP = 8