KB4528067 - ИСПРАВЛЕНО: на странице IAM может возникнуть ошибка 8959 при запросе sys.dm_db_index_physical_stats к секционированной таблице columnstore после переключения секций в SQL Server

Применяется к
SQL Server 2016 Service Pack 2 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows SQL Server 2019 on Windows

Проблема

Предположим, что у вас есть секционированная таблица с кластеризованным индексом столбцов (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:

Дополнительные сведения

Причина проблемы заключается в том, что при переключении раздела таблицы Columnstore и при наличии отметки полного удаления deltastore в исходном разделе это отметка полного удаления не переключается на целевой раздел, что вызывает ошибку несоответствия страницы IAM. Вы можете запустить "sys.dm_db_column_store_row_group_physical_stats", чтобы узнать подробные сведения о состоянии групп строк (включая надгробие) индекса Columnstore.

Временное решение

Проблема исчезла через некоторое время, когда фоновый Tuple Mover разрушил надгробный deltastore.

Или, чтобы обойти эту проблему, вы можете немедленно удалить это хранилище надгробий deltastore, чтобы избежать ошибки, выполнив команду "ALTER INDEX ... РЕОРГАНИЗОВАТЬ» один или несколько раз.

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.