Ta poprawka dotyczy również usług Microsoft SQL Server 2014 Analysis Services (SSAS 2014).
Symptomy
Załóżmy, że masz jakieś wymiary w module Microsoft SQL Server 2012 Analysis Services (SSAS 2012) lub SQL Server 2014 Analysis Services 2014 (Tfs_Analysis), który zawiera dane dla programu Microsoft Visual Studio Team Foundation Server (TFS). Po uruchomieniu polecenia Process w odniesieniu do wymiarów przetwarzanie może się nie powieść, a zostanie wyświetlony następujący komunikat o błędzie:
Błąd wewnętrzny: Wystąpił nieoczekiwany błąd (plik pfiallocator. cpp ', wiersz 822, funkcja "PFMemoryHolder:: RegisterMemoryHolder").
Jeśli ten problem jest śledzony za pomocą narzędzia SQL Profiler, śledzenie wskazuje, że podczas wykonywania polecenia ProcessFull w wymiarze vDimWorkItemTreeOverlay jest wyświetlany następujący komunikat o błędzie:
Błąd wewnętrzny: Wystąpił nieoczekiwany błąd (plik pfiallocator. cpp ', wiersz 822, funkcja "PFMemoryHolder:: RegisterMemoryHolder"). Błędy aparatu magazynu OLAP: Wystąpił błąd podczas przetwarzania atrybutu "WorkItemTreeSK" wymiaru drzewa elementów roboczych z bazy danych "Tfs_Analysis".
UwagaBłąd przetwarzania wpływa na projekty bazy danych usług Analysis Services, które mają źródła danych używane przez zarządzanego dostawcę danych programu .NET Framework dla programu SQL Server, co to jest system. Data. SqlClient.
Przyczyna
Ten problem występuje, ponieważ w ramach przetwarzania Analysis Services jest używana zduplikowana wartość klucza wymiaru w źródle danych.
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Zbiorcza aktualizacja 1 dla programu SQL Server 2014 /en-us/help/2931693
Zbiorcza aktualizacja 6 dla programu SQL Server 2012 z dodatkiem SP1 /en-us/help/2874879
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zapoznaj się z najnowszymi aktualizacjami zbiorczymi dla programu SQL Server:
Więcej informacji
Po zastosowaniu tej poprawki przetwarzanie zostanie zachowane zgodnie z ustawieniami konfiguracji błędów przetwarzania, a nie z błędami wewnętrznymi. Możesz sterować zachowaniem przy użyciu ustawienia zduplikowane klucze podczas przetwarzania wymiarów SSAS. Możesz też kontrolować zachowanie, konfigurując Właściwość Deduplikowanie właściwości ErrorConfiguration w następujący sposób podczas projektowania wymiarów:
-
Gdy ustawienie IgnoreErrorjest ustawione na wartość domyślną, nie ma żadnych ostrzeżeń, gdy zostanie napotkana zduplikowana wartość klucza, a przetwarzanie jest kontynuowane.
-
Gdy ustawienie ReportAndContinue jest ustawione na wartość , zostaną zgłoszone błędy lub ostrzeżenia. Jednak przetwarzanie jest kontynuowane.
-
Gdy ustawienie ReportAndStop jest ustawione na wartość ReportAndStop, zgłaszane są błędy lub ostrzeżenia, a przetwarzanie zostaje zatrzymane.
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".
Obejście
Aby obejść ten problem, usuń nieprawidłowy zduplikowany klucz w tabeli wymiarów hurtowni danych w aparacie bazy danych programu SQL Server. Aby znaleźć zduplikowany klucz, możesz użyć poniższej kwerendy:SELECT COUNT(WorkItemTreeSK) WorkItemTreeSKCount, WorkItemTreeSKFROM [Tfs_Warehouse].dbo.vDimWOrkItemTreeOverlayGROUP BY WorkItemTreeSKHAVING COUNT(WorkItemTreeSK) >1
Informacje
Aby uzyskać więcej informacji na temat opcji i ustawień przetwarzania, przejdź do następującej witryny MSDN w sieci Web:
Informacje o opcjach i ustawieniach przetwarzaniaAby uzyskać więcej informacji na temat ręcznego przetwarzania magazynu lub modułu, przejdź do następującej witryny MSDN w sieci Web: