The other day, I was hired for the most strange issue I have encountered. One of my previous client of Comprehensive Database Performance Health Check recently reached out with a strange bug where DBCC CHECKDB WITH PHYSICAL_ONLY failed and DBCC CHECKDB Succeeded.
This was indeed news to me. Usually in the most case when whenever DBCC CHECKDB WITH PHYSICAL_ONLY fails it is usually caught in DBCC CHECKDB as well. However, in the interesting situation, my client was getting the error only when he ran DBCC CHECKDB in the latest version of SQL Server 2017. He had absolutely the same setup in SQL Server 2016 but he never got any error.
Strange Bug with ColumnStore Index
This was indeed very strange to me as well as I have never anything in the past. After carefully working on various aspects of the error, I figured out that this was related to the ColumnStore Index. Once we removed the ColumnStore indexes from the table the error would not go away.
Just like any user who has no idea what to do in the situation, I did a quick search on the internet and found a very interesting bug related to SQL Server 2017’s latest version. Here is the link to the bug and its details.
In simple words, if there is a database that contains a table with a clustered ColumnStore index in SQL Server 2017, when you run the statement DBCC CHECKDB WITH ALL_ERRORMSGS, NO_INFOMSGS, PHYSICAL_ONLY in the database, a dump file is generated with an error message.
This is known bug and Microsoft have says they have fixed in the CU 11 but it still exists in the latest version of SQL Server. Till the bug is fixed, I suggest you put your faith on DBCC CHECKDB only and not on any other version of the same statement.
Reference: Pinal Dave (https://blog.sqlauthority.com)
First appeared on SQL SERVER – DBCC CHECKDB WITH PHYSICAL_ONLY Failing and DBCC CHECKDB Succeeding – Bug