Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 SP1 jako pliki do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały uwzględnione w poprzedniej wersji programu SQL Server 2008 R2 SP1.
Symptomy
Uwzględnij następujący scenariusz. W programie Microsoft SQL Server 2008 R2 jest uruchamiane zapytanie MDX korzystające z zagnieżdżonych funkcji krzyżowe . Funkcje zagnieżdżonych krzyżowych odwołują się do niektórych hierarchii z przeplotem. W tym scenariuszu kwerenda działa bardzo wolno, a program SQL Server 2008 R2 może przestać odpowiadać. Na przykład uruchom zapytanie MDX podobne do następujących:
CrossJoin (CrossJoin (CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])), [Dimension1 Hierarchy]), [Dimension2 Hierarchy]), [Dimension1 Hierarchy])Uwagi
-
W hierarchiach z przeplotem zagnieżdżone funkcje krzyżowe odwołują się do różnych hierarchii wymiarów.
-
Ten problem nie występuje w programie SQL Server 2008.
Przyczyna
Ten problem występuje, ponieważ pamięć potrzebna do grupowania hierarchii z tego samego wymiaru wzrasta w sposób wykładniczy i jest ostatecznie używana.
Rozwiązanie
Informacje o aktualizacji zbiorczej
SQL Server 2008 R2 z dodatkiem Service Pack 2
Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 3. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji dla programu SQL Server 2008 R2 z dodatkiem Service Pack 2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2754552 Pakiet aktualizacji zbiorczej 3 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 2 Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które uwzględniono w poprzedniej wersji poprawki do programu SQL Server 2008 R2 z dodatkiem Service Pack 2. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2730301 Kompilacja programu SQL Server 2008 R2 opublikowanych po wydaniu programu SQL Server 2008 R2 z dodatkiem Service Pack 2
SQL Server 2008 R2 z dodatkiem SP1
Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 8. Aby uzyskać więcej informacji na temat sposobu uzyskiwania tego zbiorczego pakietu aktualizacji dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2723743 Pakiet aktualizacji zbiorczej 8 dla programu SQL Server 2008 R2 z dodatkiem Service Pack 1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń dołączone do poprzedniej wersji poprawki SQL Server 2008 R2. Zalecamy zastosowanie najnowszego wydania poprawki zawierającego tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2567616 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu dodatku Service Pack 1 dla programu SQL Server 2008 R2
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, Zmień kwerendę, aby umieścić drugą hierarchię wymiaru w funkcji zewnętrzne połączenie krzyżowe . Na przykład Napisz zapytanie ponownie, aby przypominać, co następuje:
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension1 Hierarchy]), [Dimension2 Hierarchy])