Este Hotfix también se aplica a Microsoft SQL Server 2014 Analysis Services (SSAS 2014).
Síntomas
Suponga que tiene algunas dimensiones en el cubo Microsoft SQL Server 2012 Analysis Services (SSAS 2012) o SQL Server 2014 Analysis Services (SSAS 2014) (Tfs_Analysis) que contiene los datos de Microsoft Visual Studio Team Foundation Server (TFS). Cuando se ejecuta un comando de proceso con las dimensiones, el procesamiento puede dar error y se recibe el siguiente mensaje de error:
Error interno: se ha producido un error inesperado (archivo ' pfiallocator. cpp ', línea 822, función ' PFMemoryHolder:: RegisterMemoryHolder ').
Si utiliza el analizador de SQL para rastrear el problema, la traza muestra que el siguiente mensaje de error se produce durante el comando ProcessFull en la dimensión vDimWorkItemTreeOverlay :
Error interno: se ha producido un error inesperado (archivo ' pfiallocator. cpp ', línea 822, función ' PFMemoryHolder:: RegisterMemoryHolder '). Errores en el motor de almacenamiento OLAP: error al procesar el atributo ' WorkItemTreeSK ' de la dimensión ' árbol de elementos de trabajo ' de la base de datos ' Tfs_Analysis '.
Nota: El error de procesamiento afecta a los diseños de base de datos de Analysis Services que tienen orígenes de datos que usan el proveedor de datos de .NET Framework administrado para SQL Server, que es System. Data. SqlClient.
Causa
El problema se produce porque el procesamiento de Analysis Services usa un valor de clave de dimensión duplicado en el origen de datos.
Resolución
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 1 para SQL Server 2014 /en-us/help/2931693
Actualización acumulativa 6 para SQL Server 2012 SP1 /en-us/help/2874879
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Más información
Después de aplicar la revisión, el procesamiento se comportará según los valores de configuración de errores de procesamiento en lugar de los síntomas de error internos. Puede controlar el comportamiento mediante la configuración de clave duplicada al procesar las dimensiones de SSAS. O bien, puedes controlar el comportamiento Si configuras la propiedad KeyDuplicate de la propiedad ErrorConfiguration como se indica a continuación cuando diseñas las dimensiones:
-
Cuando la configuración KeyDuplicate se establece en el valor predeterminado IgnoreError, no hay ninguna advertencia cuando se encuentra un valor de clave duplicada y el procesamiento continúa.
-
Cuando la configuración de KeyDuplicate se establece en ReportAndContinue, se notifican los errores o advertencias. Sin embargo, el procesamiento continúa.
-
Cuando la configuración KeyDuplicate se establece en ReportAndStop, se notifican los errores o advertencias y se detiene el procesamiento.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Solución alternativa
Para solucionar el problema, elimine la clave duplicada no válida de las tablas de dimensiones del almacén de datos en el motor de base de datos de SQL Server. Puede usar la siguiente consulta para buscar la clave duplicada:SELECT COUNT(WorkItemTreeSK) WorkItemTreeSKCount, WorkItemTreeSKFROM [Tfs_Warehouse].dbo.vDimWOrkItemTreeOverlayGROUP BY WorkItemTreeSKHAVING COUNT(WorkItemTreeSK) >1
Referencias
Para obtener más información acerca de las opciones de procesamiento y la configuración, visite el siguiente sitio web de MSDN:
Información acerca de las opciones de procesamiento y la configuraciónPara obtener más información sobre cómo procesar el almacén o el cubo de forma manual, vaya al siguiente sitio web de MSDN:
Procesar manualmente el almacén de datos y el cubo de Analysis Services para Team Foundation Server