Objawy
Załóżmy, że masz podzieloną na partycje tabelę z indeksem CCI (Clustered Columnstore Index) w programie Microsoft SQL Server. Po uruchomieniu instrukcji SELECT w dynamicznym widoku zarządzania (DMV)sys.dm_db_index_physical_stats względem tabeli może zostać wyświetlony komunikat o błędzie podobny do następującego na stronie Mapa alokacji indeksu (IAM) po przełączeniu partycji:
Komunikat o błędzie 8959, Poziom 16, Stan 1, Numer wiersza
* Błąd tabeli: IAM page(1:361) dla identyfikatora obiektu ObjectID, identyfikatora indeksu IndexID, identyfikatora partycji PartitionID, identyfikatora jednostki alokacji UnitID (typ danych w wierszu) jest połączony w łańcuchu IAM dla identyfikatora obiektu ObjectID, identyfikatora indeksu IndexID, identyfikatora partycji PartitionID, identyfikatora jednostki alokacji UnitID (typ danych w wierszu) według strony (0:0).
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Rozwiązanie
Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla programu SQL Server:
Informacje o aktualizacjach zbiorczych dla programu SQL Server:
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2019
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2017
Najnowsza aktualizacja zbiorcza dla programu SQL Server 2016
Więcej informacji
Przyczyną tego problemu jest to, że po wykonaniu przełączania partycji tabeli Columnstore i jeśli w partycji źródłowej istnieje jakikolwiek magazyn różnicowy reliktu, ten relikt nie zostanie przełączony na partycję docelową, co powoduje błąd niezgodności strony IAM. Możesz uruchomić "sys.dm_db_column_store_row_group_physical_stats", aby poznać szczegółowy stan grup wierszy (w tym relikt) dotyczący indeksu magazynu kolumn.
Obejście
Problem zniknął po pewnym czasie, gdy tło Tuple Mover zniszczyło deltastore nagrobka.
Aby obejść ten problem, możesz natychmiast usunąć ten relikt deltastore, aby uniknąć błędu, uruchamiając "ALTER INDEX ... REORGANIZUJ" jeden lub więcej razy.
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.