Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 jako jednego pliku do pobrania. Ponieważ poprawki są zbiorcze, każde nowe wydanie zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2.
Symptomy
W programie Microsoft SQL Server 2008 R2 mogą być wyświetlane niespójne wyniki, gdy jest wykonywana złożona kwerenda używająca operatora apply . Uwaga W tym scenariuszu jest wyświetlany prawidłowy wynik, jeśli w zapytaniu jest używana Wskazówka dotycząca zapytania dotyczącego realizacji zamówienia .
Przyczyna
Ten problem występuje, ponieważ optymalizator zapytań wybiera nieprawidłowy plan wykonania dla zapytania. Optymalizator zapytań obsługuje predykat Group by dla wielu kolumn w operatorze fizycznym planu wykonania. Jednak operator wyświetla wszystkie zgrupowane kolumny na liście wyników i nie grupuje wszystkich tych kolumn. Dlatego kwerenda może zwrócić nieprawidłowy wynik. Uwaga Przykładem operatora fizycznego jest operator zagregowany strumienia . Na przykład optymalizator kwerend generuje klauzulę Group by ColA, klauzula colB wewnętrznie na podstawie następującej tabeli:
ColA |
ColB |
---|---|
0,4 |
0,4 |
0,4 |
1 |
Optymalizator zapytań może nieprawidłowo wygenerować plan wykonania, który zwraca zarówno kolumny ColA , jak i colB . Te kolumny są grupowane według kolumny ColA na liście wyników. W tym przykładzie kwerenda może przypadkowo zwrócić wartość 0 lub 1 w kolumnie colB , jeśli wartości w kolumnie ColA są równe 0.
Rozwiązanie
Informacje o aktualizacji zbiorczej
SQL Server 2008 R2
Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 5. 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:
2438347 Pakiet aktualizacji zbiorczej 5 dla programu SQL Server 2008 R2 Uwaga 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:
981356 Kompilacje programu SQL Server 2008 R2, które zostały wydane po opublikowaniu 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".
Więcej informacji
Aby sprawdzić, czy wystąpił ten problem, przejrzyj plan wykonania zapytania powodującego problemy, a następnie zaznacz pozycję operatorzy grupy. Na przykład sprawdź operator agregacji strumienia, operator agregujący hash, unikatowy Operator sortowania i operator segmentu. Jeśli lista kolumn wyjściowych jest dłuższa niż lista zgrupowanych kolumn, występuje ten problem.
Informacje
Aby uzyskać więcej informacji dotyczących modelu obsługi przyrostowej dla programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
935897 Model obsługi przyrostowej jest dostępny w zespole programu SQL Server w celu dostarczenia poprawek dotyczących zgłaszanych problemówAby uzyskać więcej informacji na temat schematu nazewnictwa dla aktualizacji programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
822499Nowy schemat nazewnictwa dla pakietów aktualizacji oprogramowania Microsoft SQL ServerAby uzyskać więcej informacji o terminologii dotyczącej aktualizacji oprogramowania, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft