Microsoft distributes Microsoft SQL Server 2008 R2 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release.
Symptoms
When you use a parallel execution plan to try to create a partitioned nonclustered index in Microsoft SQL Server 2008 R2, an issue occurs that has the following symptoms:
-
The following error messages are logged in the SQL Server error log:
<Date time> spid<n> Error: 17066, Severity: 16, State: 1.
<Date time> spid<n> SQL Server Assertion: File: <sobuild.c>, line=3392 Failed Assertion = 'CompareRow ( rightPageRow, *m_pSEBindings, keyCnt, *pHobtAccess, PAGE_LEAF_LEVEL)'. This error may be timing-related. If the error persists after rerunning the statement, use DBCC CHECKDB to check the database for structural integrity, or restart the server to ensure in-memory data structures are not corrupted. -
The parallel execution plan does not create the index.
-
The client application that sends the CREATE INDEX statement may receive a SQL Server exception.
-
The connection between the client and server is closed.
Note
-
A parallel execution plan might be used in the following situations:
-
You set the MAXDOP query hint option to a value that is greater than 1.
-
You set the Max Degree of Parallelism option to 0 or to a value that is greater than 1 in server configuration.
-
-
This issue does not occur in Microsoft SQL Server 2008.
Cause
This issue occurs because two or more SQL Server parallel threads perform index creation on overlapped partition ranges.
Resolution
Cumulative update information
SQL Server 2008 R2 Service Pack 1
The fix for this issue was first released in Cumulative Update 1 for SQL Server 2008 R2 Service Pack 1. For more information about how to obtain this cumulative update package, click the following article number to view the article in the Microsoft Knowledge Base:
2544793 Cumulative Update package 1 for SQL Server 2008 R2 Service Pack 1Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2567616 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 1 was released
SQL Server 2008 R2
The fix for this issue was first released in Cumulative Update 8. For more information about how to obtain this cumulative update package for SQL Server 2008 R2, click the following article number to view the article in the Microsoft Knowledge Base:
2534352 Cumulative Update package 8 for SQL Server 2008 R2 Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
981356 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 was released
Workaround
To work around this issue, use one of the following methods:
-
Set the Max Degree of Parallelism option to 1 in server configuration before you create the index.
-
Set the MAXDOP query hint option to 1 when you create the index.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
More Information
For more information about the CREATE INDEX statement, visit the following MSDN website:
General information about the CREATE INDEX statementFor more information about the CREATE PARTITION FUNCTION statement, visit the following MSDN website:
General information about the CREATE PARTITION FUNCTION statement