Проблема
Предположим, что у вас есть секционированная таблица с кластеризованным индексом столбцов (CCI) в Microsoft SQL Server. При запуске инструкции SELECT в динамическом административном представлении (DMV)sys.dm_db_index_physical_stats для таблицы может появиться сообщение об ошибке, похожее на следующее на странице карты распределения индексов (IAM) после переключения разделов:
Ошибка MSG 8959, уровень 16, состояние 1, номер строки
* Ошибка таблицы: IAM page(1:361) для идентификатора объекта ObjectID, идентификатора индекса IndexID, идентификатора раздела PartitionID, идентификатора единицы распределения UnitID (тип In-row data) связан в цепочке IAM для идентификатора объекта ObjectID, идентификатора индекса IndexID, идентификатора раздела PartitionID, идентификатора единицы распределения UnitID (тип данных в строке) по странице (0:0).
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Решение
Эта проблема устранена в следующих накопительных обновлениях для SQL Server:
О накопительных обновлениях для SQL Server:
Каждое новое накопительное обновление для SQL Server содержит все исправления и все исправления безопасности, которые входили в предыдущий накопительный пакет обновления. Ознакомьтесь с последними накопительными обновлениями для SQL Server:
Последний накопительный пакет обновления для SQL Server 2019
Последний накопительный пакет обновления для SQL Server 2017
Последний накопительный пакет обновления для SQL Server 2016
Дополнительные сведения
Причина проблемы заключается в том, что при переключении раздела таблицы Columnstore и при наличии отметки полного удаления deltastore в исходном разделе это отметка полного удаления не переключается на целевой раздел, что вызывает ошибку несоответствия страницы IAM. Вы можете запустить "sys.dm_db_column_store_row_group_physical_stats", чтобы узнать подробные сведения о состоянии групп строк (включая надгробие) индекса Columnstore.
Временное решение
Проблема исчезла через некоторое время, когда фоновый Tuple Mover разрушил надгробный deltastore.
Или, чтобы обойти эту проблему, вы можете немедленно удалить это хранилище надгробий deltastore, чтобы избежать ошибки, выполнив команду "ALTER INDEX ... РЕОРГАНИЗОВАТЬ» один или несколько раз.
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.