Firma Microsoft rozpowszechnia poprawki programu Microsoft SQL Server 2008 R2 z dodatkiem Service Pack 1 (SP1) lub Microsoft SQL Server 2012 w jednym pliku do pobrania. Ponieważ poprawki są kumulatywne, każda nowa wersja zawiera wszystkie poprawki i wszystkie aktualizacje zabezpieczeń, które zostały dołączone do 2008 wcześniejszego wydania aktualizacji z dodatkiem Service Pack 1 (SP1) lub Microsoft SQL Server 2012.
Symptomy
Rozpatrzmy następujący scenariusz:
-
Uaktualniasz program Microsoft SQL Server 2005 do programu Microsoft SQL Server 2008 lub Microsoft SQL Server 2008 R2 lub Microsoft SQL Server 2012.
-
Uruchom zapytanie korzystające z procedury składowanej sp_cursoropen , a następnie określ parametr rowcount w celu pobrania pierwszych kilku wierszy tabeli.
W tym scenariuszu wydajność może być wolniejsza niż w przypadku uruchomienia tego samego zapytania w programie SQL Server 2005.
Przyczyna
Ten problem występuje, ponieważ optymalizator zapytań używa statycznego planu kursora zamiast dynamicznego planu kursorów. W przypadku planu statycznego kursora program SQL Server pobiera wszystkie wiersze i wstawia je do tabeli praca kursora. Jednak w przypadku dynamicznego planu kursorów program SQL Server pobiera tylko potrzebne wiersze.
Rozwiązanie
Informacje o aktualizacji zbiorczej
Program SQL Server 2012
Poprawka dotycząca tego problemu została wydana po raz pierwszy w aktualizacji zbiorczej 1 dla programu SQL Server 2012. Aby uzyskać więcej informacji na temat tego zbiorczego pakietu aktualizacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2679368 Pakiet aktualizacji zbiorczej 1 dla programu SQL Server 2012Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2012. Firma Microsoft zaleca 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:
2692828 Kompilacje programu SQL Server 2012 wydane po wydaniu programu SQL Server 2012 Musisz zastosować poprawkę SQL Server 2012 do instalacji programu SQL Server 2012.
Pakiet aktualizacji zbiorczej 5 dla programu SQL Server 2008 R2 z dodatkiem SP1
Po zastosowaniu tej poprawki Włącz flagę śledzenia 4199. 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 pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2 z dodatkiem SP1, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2659694 Pakiet aktualizacji zbiorczej 5 dla programu SQL Server 2008 R2 z dodatkiem SP1Uwaga Ponieważ kompilacja jest zbiorcza, każdy nowy pakiet poprawek zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń, które zostały dołączone do poprzedniej wersji poprawki SQL Server 2008 R2 SP1. 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 wydane po opublikowaniu programu SQL Server 2008 R2 SP1
Obejście
Aby obejść ten problem, Dodaj szybką wskazówkę do zapytania.
Więcej informacji
Aby uzyskać więcej informacji na temat używania wskazówek dotyczących kwerend, odwiedź następującą witrynę MSDN w sieci Web:
Informacje ogólne dotyczące korzystania z wskazówek dotyczących kwerendAby uzyskać więcej informacji na temat flagi śledzenia 4199, odwiedź następującą witrynę sieci Web:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".