KB4459709 - FIX: Poor performance occurs when you run a query against columnstore in an RCSI-enabled database in SQL Server 2016 and 2017

Applies to: SQL Server 2016 DeveloperSQL Server 2016 EnterpriseSQL Server 2016 Enterprise Core

Symptoms


Consider the following scenario:

  • You have a Microsoft SQL Server 2016 or 2017 database which contains columnstore indexes.
  • You enable Read Committed Snapshot Isolation (RCSI) at database level, or the database is acting as a readable secondary replica in an Availability Group (RCSI is enabled by default in this case).
  • You run read (SELECT) queries against columnstore index as INSERT statements occur on the same index.

In this scenario, you may notice poor performance in SQL Server 2016 and 2017. Additionally, you may experience severe blocking and query waits on QUERY_TASK_ENQUEUE_MUTEX and ROWGROUP_VERSION.

Resolution


Cumulative update information:
This issue is fixed in the following cumulative updates for SQL Server:

       Cumulative Update 16 for SQL Server 2017

       Cumulative Update 3 for SQL Server 2016 Service Pack 2

    On-Demand Hotfix Information:

    This issue is fixed in the following on-demand hotfix for SQL Server:

          On-demand hotfix for SQL Server 2017 CU15

    Workaround


    As a workaround for this issue, you can drop the columnstore index on the table.

    Status


    Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

    References


    Learn about the terminology that Microsoft uses to describe software updates.