Nur die physische checkdb schlägt fehl, aber die vollständige Prüfung ist erfolgreich abgeschlossen

13

Ich führe checkdb mit der Option physical_only aus und es tritt ein Fehler mit den folgenden Fehlern auf:

Meldung 8965, Ebene 16, Status 1, Zeile 1
Tabellenfehler: Objekt-ID 1557580587, Index-ID 1, Partitions-ID 72057594088456192, Zuweisungseinheit-ID 72057594177454080 (Typ In-Row-Daten). Der Off-Row-Datenknoten auf Seite (1: 13282192), Steckplatz 3, Text-ID 6370769698816 wird von Seite (0: 0), Steckplatz 0, referenziert, wurde jedoch im Scan nicht angezeigt.
Meldung 8965, Ebene 16, Status 1, Zeile 1
Tabellenfehler: Objekt-ID 1557580587, Index-ID 1, Partitions-ID 72057594088456192, Zuweisungseinheit-ID 72057594177454080 (Typ In-Row-Daten). Der Off-Row-Datenknoten auf Seite (1: 13282192), Steckplatz 5, Text-ID 6370769764352 wird von Seite (0: 0), Steckplatz 0, referenziert, wurde jedoch im Scan nicht angezeigt.
CHECKDB hat in Tabelle 'TableX' (Objekt-ID 1557580587) 0 Zuordnungsfehler und 5255 Konsistenzfehler gefunden.
CHECKDB hat in der Datenbank 'DatabaseX' 0 Zuordnungsfehler und 5255 Konsistenzfehler gefunden . repair_allow_data_loss ist die Mindestreparaturstufe für die von DBCC CHECKDB (DWH_LAND) gefundenen Fehler.

Vollständige Prüfung ist jedoch erfolgreich:

CHECKDB hat in der Datenbank 'DatabaseX' 0 Zuordnungsfehler und 0 Konsistenzfehler gefunden. DBCC-Ausführung abgeschlossen. Wenn DBCC Fehlermeldungen ausgibt, wenden Sie sich an Ihren Systemadministrator.


TableX verfügt über rund 200.000 Zeilen und einen geclusterten Columnstore-Index.
Wir verwenden die folgende Version von SQL Server:
Microsoft SQL Server 2017 (RTM-CU13) (KB4466404) - 14.0.3048.4 Muss

ich mir Sorgen machen?

Andrzej Błoch
quelle

Antworten:

13

Ja, dies ist ein Fehler in SQL Server 2017 bis CU14. Bei nicht gruppierten Columnstore-Indizes in SQL Server 2016 trat ein ähnliches Problem auf .

In diesem Video wird Folgendes beschrieben : CHECKDB-Fehler mit SQL Server 2017- und ColumnStore-Indizes

Ein tragbarer Repro der Ausgabe ist dieses:

SELECT *, CONVERT(NVARCHAR(MAX), m.text + m.text + m.text + m.text + m.text) AS texty
INTO dbo.corrupt
FROM sys.messages AS m;

CREATE CLUSTERED COLUMNSTORE INDEX cx_corrupt ON dbo.corrupt;

DBCC CHECKDB WITH PHYSICAL_ONLY;

DROP TABLE dbo.corrupt;
Erik Darling
quelle