Это исправление также относится к службам Microsoft SQL Server 2014 Analysis Services (SSAS 2014).
Проблемы
Предположим, что у вас есть некоторые измерения в Кубе Microsoft SQL Server 2012 Analysis Services (SSAS 2012) или служб SQL Server 2014 Analysis Services (SSAS 2014) (Tfs_Analysis), которые содержат данные для Microsoft Visual Studio Team Foundation Server (TFS). При выполнении команды Process для измерений обработка может завершиться ошибкой, и появляется следующее сообщение об ошибке:
Внутренняя ошибка: произошла непредвиденная ошибка (файл "pfiallocator. cpp", строка 822, функция "PFMemoryHolder:: RegisterMemoryHolder").
Если для отслеживания проблемы используется SQL Profiler, трассировка показывает, что во время выполнения команды ProcessFull в измерении vDimWorkItemTreeOverlay появляется следующее сообщение об ошибке:
Внутренняя ошибка: произошла непредвиденная ошибка (файл "pfiallocator. cpp", строка 822, функция "PFMemoryHolder:: RegisterMemoryHolder"). Ошибки в подсистеме хранилища OLAP: произошла ошибка при обработке атрибута "WorkItemTreeSK" измерения "иерархия рабочих элементов" из базы данных "Tfs_Analysis".
Примечание.Сбой обработки влияет на макеты баз данных служб Analysis Services, у которых есть источники данных, которые использовали управляемый поставщик данных .NET Framework для SQL Server, который является System. Data. SqlClient.
Причина
Проблема возникает из-за того, что при обработке служб Analysis Services используется повторяющееся значение ключа измерения в источнике данных.
Решение
Эта проблема впервые устранена в следующем накопительном обновлении SQL Server.
Накопительное обновление 1 для SQL Server 2014 /en-us/help/2931693
Накопительное обновление 6 для SQL Server 2012 с пакетом обновления 1 (SP1) /en-us/help/2874879
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Дополнительная информация
После применения исправления обработка будет работать в соответствии с параметрами конфигурации ошибок обработки, а не в соответствии с появлением внутренней ошибки. Вы можете управлять поведением с помощью параметра " дублировать ключ " при обработке измерений SSAS. Кроме того, вы можете управлять поведением, настраивая свойство KeyDuplicate свойства ErrorConfiguration следующим образом при проектировании размеров.
-
Если для параметра KeyDuplicate задано значение по умолчанию IgnoreError, при обнаружении повторяющихся значений ключа предупреждения не выводятся, а обработка продолжается.
-
Если для параметра KeyDuplicate задано значение ReportAndContinue, в отчете выводятся сведения об ошибках или предупреждениях. Тем не менее обработка продолжается.
-
Если для параметра KeyDuplicate задано значение ReportAndStop, выводятся сведения об ошибках или предупреждениях, а обработка останавливается.
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Обходное решение
Чтобы обойти эту ошибку, Удалите недопустимый повторяющийся ключ в таблицах измерений хранилища данных в компоненте SQL Server Database Engine. Вы можете найти повторяющийся ключ с помощью следующего запроса:SELECT COUNT(WorkItemTreeSK) WorkItemTreeSKCount, WorkItemTreeSKFROM [Tfs_Warehouse].dbo.vDimWOrkItemTreeOverlayGROUP BY WorkItemTreeSKHAVING COUNT(WorkItemTreeSK) >1
Ссылки
Дополнительные сведения о параметрах и параметрах обработки можно найти на веб-сайте MSDN по следующему адресу:
Сведения о параметрах и параметрах обработкиДополнительные сведения о том, как выполнить обработку хранилища или куба вручную, можно найти на веб-сайте MSDN по следующему адресу:
Ручная обработка хранилища данных и куба служб аналитики для Team Foundation Server