FIX: Error 8654 when you run "INSERT INTO … SELECT" on a table with clustered columnstore index in SQL Server 2014

Applies to: SQL Server 2014 DeveloperSQL Server 2014 DeveloperSQL Server 2014 Enterprise More

Symptoms


Assume that you have a table that has clustered columnstore index in Microsoft SQL Server 2014. When you try to load data to the table by using the INSERT INTO … SELECT statement, you may receive the following error message:
Error: 8645, Severity: 17, State: 1, Line: 1
A timeout occurred while waiting for memory resources to execute the query in resource pool 'default' (2). Rerun the query.

Note When there is insufficient memory for bulk insert, SQL Server tries to do a non-bulk insert with this fix. This typically requires significantly less memory. The query still fails if there is even insufficient memory to do the non-bulk insert.

Resolution


This fix introduces a new trace flag 9348 to use query optimizer cardinality estimates to decide whether bulk insert should be initiated or not. If the estimated number of rows to insert is less than 102400, SQL Server does not try to do a bulk insert. If more than 102400 are estimated, a bulk insert is initiated.
The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 4 for SQL Server 2014

Status


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