Проблемы
В среде Microsoft SQL Server 2016 несколько секций в таблице обрабатываются параллельно. При отслеживании хода выполнения вы замечаете событие повторной кодировки по крайней мере для одного из столбцов. В этом случае операция обработки может завершиться с ошибкой исключения. Иногда обработка может завершиться успешно, но последующие запросы заканчиваются ошибкой, которая напоминает следующее:
Возникло непредвиденное исключение. Возникло непредвиденное исключение. (Microsoft SQL Server 2016 Analysis Services) Расположение программы: в Microsoft. AnalysisServices. AdomdClient. AdomdConnection. XmlaClientProvider. Microsoft. AnalysisServices. AdomdClient. IExecuteProvider. ExecuteTabular (режим CommandBehavior, ICommandContentProvider contentProvider, AdomdPropertyCollection commandProperties, IDataParameterCollection параметров) в Microsoft. AnalysisServices. AdomdClient. AdomdCommand. ExecuteReader (поведение CommandBehavior) на веб-странице Microsoft. AnalysisServices. AdomdClient. AdomdCommand. ExecuteReader () на.
Примечание. Иногда эта проблема возникает после завершения обработки, и запросы выполняются для обработанных данных.
Решение
Сведения о накопительном пакете обновления
Исправление для этой проблемы включено в накопительный пакет обновления для SQL Server, описанный ниже.
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Обходное решение
Чтобы устранить эту ошибку, выполните одно из указанных ниже действий.
-
Определите, какие столбцы требуют повторной кодировки, и используйте поддельную секцию в начале для создания значений, которые будут принудительно использовать хэш-кодировку на этапе обнаружения. Поддельная секция должна быть той, которая используется для выбора кодировки перед началом параллелизма. После обработки всех разделов вы можете очистить или удалить поддельную секцию.
-
Используйте последовательную обработку вместо параллельной обработки.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Дополнительная информация
Параллельная обработка табличных секций состоит из следующей логики:
-
Используйте данные из одной секции, чтобы определить кодировку (значение или хэш) столбцов.
-
После выбора кодировки другие разделы могут начать обрабатываться параллельно.
-
Если выделена кодировка значения, а при извлечении строк, может быть обнаружено значение, которое не помещается в схему кодирования значений. В этом случае весь столбец должен быть повторно закодирован в схему хэш-кодировки.
-
Эта операция повторного кодирования (преобразование кодировки значения в хэш-кодировку) обнаруживает проблему, возникающую при обработке других секций одновременно.
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.