Firma Microsoft dystrybuuje poprawki dla programów Microsoft SQL Server 2005, Microsoft SQL Server 2008 i Microsoft SQL Server 2008 R2 jako jeden plik do pobrania. Ponieważ poprawki są zbiorcze, każda nowa wersja zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji programu SQL Server 2005, SQL Server 2008 lub SQL Server 2008 R2.
Objawy
Rozważmy następujący scenariusz:
- Opcję ALLOW_SNAPSHOT_ISOLATION włącza się w bazie danych programu Microsoft SQL Server 2005, Microsoft SQL Server 2008 lub Microsoft SQL Server 2008 R2.
- Operacja przechowywania wersji jest wykonywana na tabeli. Na przykład możesz zaktualizować tabelę.
- Wyłączono poziom izolacji migawki w bazie danych.
- Kolumna klucza indeksu została zaktualizowana w rekordzie zawierającym informacje o przechowywaniu wersji.
- Odbudowujesz indeks online w tabeli.
W takim scenariuszu występuje błąd potwierdzenia, a w dzienniku błędów programu SQL Server są wyświetlane następujące komunikaty:
Uwaga
<Data><Godzina><> podgląd * ROZPOCZNIJ ZRZUT STOSU:
<Data><Godzina<>podgląd> *<Data><Godzina><podgląd>
<Data><i godzina><> szpieg *
<Data><Godzina><> szpieg * Lokalizacja: AppendOnlyVerStoreMgr.cpp:731
<Data><Godzina><spid> * Wyrażenie: 0
<Data><Godzina><spid> * SPID:<spid>
<Data><Godzina><> podgląd * Identyfikator procesu: 6328
<Data><i godzina><> podgląd * Opis: Nie można zlokalizować rekordu wersji, a strona nie jest przydzielona. Stan = 3
<Data><i godzina><> szpieg *
<Data><Godzina><spid> * Bufor wejściowy 170 bajtów -
<Data><Godzina>>< podgląd * ALTER INDEX <Nazwa> tabeli ON Indeks> ODBUDUJ <Z(O
<Data><Godzina><spid> * NLINE = ON)
Przyczyna
Ten problem występuje, ponieważ informacje o przechowywaniu wersji nowego rekordu klucza indeksu są kopiowane ze starego rekordu klucza indeksu. Dlatego błąd występuje podczas odbudowywania indeksu.
Rozwiązanie
Informacje o aktualizacji zbiorczej
SQL Server 2008 R2
Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 5. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2008 R2, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2438347 Pakiet 5 aktualizacji zbiorczych dla SQL Server 2008 R2 Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa poprawka zawiera wszystkie poprawki i poprawki zabezpieczeń z poprzednich wersji poprawek SQL Server 2008 R2. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
981356 Kompilacje SQL Server 2008 R2 wydane po wydaniu SQL Server 2008 R2
Dodatek Service Pack 4 dla programu SQL Server 2005
Poprawkę rozwiązującą ten problem opublikowano po raz pierwszy w aktualizacji zbiorczej 1 dla programu SQL Server 2005 z dodatkiem Service Pack 4. Aby uzyskać więcej informacji dotyczących tego pakietu aktualizacji skumulowanych, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2464079 Pakiet aktualizacji zbiorczej 1 dla dodatku Service Pack 4 dla systemu SQL Server 2005Uwaga Ponieważ te kompilacje są zbiorcze, każda nowa poprawka zawiera wszystkie poprawki i poprawki zabezpieczeń z poprzedniej wersji poprawki SQL Server 2005. Firma Microsoft zaleca rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2485757 Kompilacje SQL Server 2005 wydane po wydaniu dodatku Service Pack 4 SQL Server 2005 Poprawki Microsoft SQL Server 2005 są tworzone dla określonych SQL Server dodatków Service Pack. Należy zastosować poprawkę dodatku Service Pack 4 dla programu SQL Server 2005 do instalacji dodatku Service Pack 4 dla programu SQL Server 2005. Domyślnie każda poprawka dostępna w dodatku Service Pack dla programu SQL Server jest uwzględniona w następnym dodatku Service Pack dla programu SQL Server.
SQL Server 2005 z dodatkiem SP3
Poprawka rozwiązująca ten problem została po raz pierwszy opublikowana w aktualizacji zbiorczej 12. Aby uzyskać więcej informacji dotyczących sposobu uzyskania tego pakietu aktualizacji zbiorczej dla programu SQL Server 2005 z dodatkiem SP3, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2345449 Pakiet aktualizacji zbiorczych 12 dla dodatku Service Pack 3 SQL Server 2005 Uwaga Ponieważ te kompilacje są zbiorcze, każda nowa poprawka zawiera wszystkie poprawki i poprawki zabezpieczeń zawarte w poprzedniej wersji poprawki dodatku SP3 dla SQL Server 2005. Zalecamy rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
960598 Kompilacje SQL Server 2005 wydane po wydaniu dodatku Service Pack 3 SQL Server 2005
SQL Server 2008 z dodatkiem Service Pack 1
Poprawkę rozwiązującą ten problem opublikowano po raz pierwszy w aktualizacji zbiorczej 11 dla dodatku Service Pack 1 dla programu SQL Server 2008. Aby uzyskać więcej informacji dotyczących tego pakietu aktualizacji skumulowanych, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2413738 Pakiet aktualizacji zbiorczej 11 dla dodatku Service Pack 1 SQL Server 2008Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa poprawka zawiera wszystkie poprawki i poprawki zabezpieczeń, które były zawarte w poprzedniej wersji poprawki SQL Server 2008. Firma Microsoft zaleca rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
970365 Kompilacje SQL Server 2008 wydane po wydaniu dodatku Service Pack 1 SQL Server 2008 Poprawki Microsoft SQL Server 2008 są tworzone dla określonych dodatków Service Pack SQL Server. Należy zastosować poprawkę dodatku Service Pack 1 dla programu SQL Server 2008 do instalacji dodatku Service Pack 1 dla programu SQL Server 2008. Domyślnie każda poprawka dostępna w dodatku Service Pack dla programu SQL Server jest uwzględniona w następnym dodatku Service Pack dla programu SQL Server.
Dodatek Service Pack 2 dla programu SQL Server 2008
Poprawkę rozwiązującą ten problem opublikowano po raz pierwszy w aktualizacji zbiorczej 2 dla dodatku Service Pack 2 dla programu SQL Server 2008. Aby uzyskać więcej informacji dotyczących tego pakietu aktualizacji skumulowanych, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2467239 Pakiet aktualizacji zbiorczej 2 dla dodatku Service Pack 2 SQL Server 2008Uwaga Ponieważ te kompilacje mają charakter zbiorczy, każda nowa wersja poprawki zawiera wszystkie poprawki i poprawki zabezpieczeń z poprzednich wersji poprawek SQL Server 2008. Firma Microsoft zaleca rozważenie zastosowania najnowszej wersji poprawki zawierającej tę poprawkę. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Baza wiedzy Microsoft Knowledge Base:
2402659 Kompilacje SQL Server 2008 wydane po wydaniu dodatku Service Pack 2 SQL Server 2008 Poprawki Microsoft SQL Server 2008 są tworzone dla określonych SQL Server dodatków Service Pack. Należy zastosować poprawkę dodatku Service Pack 2 dla programu SQL Server 2008 do instalacji dodatku Service Pack 2 dla programu SQL Server 2008. Domyślnie każda poprawka dostępna w dodatku Service Pack dla programu SQL Server jest uwzględniona w następnym dodatku Service Pack dla programu SQL Server.
Obejście
Aby obejść ten problem, odbuduj indeks tej bazy danych, ustawiając w zapytaniu dla opcji ONLINE wartość WYŁ.
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Źródła informacji
Aby uzyskać więcej informacji o operacjach indeksowania w trybie online, odwiedź następującą witrynę firmy Microsoft w sieci Web:
Ogólne informacje o operacjach indeksowania
Aby uzyskać więcej informacji o szczegółach operacji indeksowania w trybie online, odwiedź następującą witrynę firmy Microsoft w sieci Web: