Objawy
Załóżmy, że masz bazę danych z włączoną funkcją RCSI (Read Committed Snapshot Isolation) przez ustawienie opcji READ_COMMITTED_SNAPSHOT w systemie Microsoft SQL Server 2014. W przypadku uzyskiwania dostępu zarówno do tabeli zoptymalizowanej pod kątem pamięci, jak i zmiennej tabeli zoptymalizowanej pod kątem pamięci w tej samej instrukcji poza kontekstem transakcji użytkownika, operacja może zakończyć się niepowodzeniem. Ponadto może zostać wyświetlony następujący błąd:
Uwaga
Wiadomość 41359. Zapytanie, które uzyskuje dostęp do tabel zoptymalizowanych pod kątem pamięci przy użyciu poziomu izolacji READ COMMITTED nie może uzyskać dostępu do tabel opartych na dysku, gdy opcja bazy danych READ_COMMITTED_SNAPSHOT jest ustawiona na WŁ. Podaj obsługiwany poziom izolacji dla tabeli zoptymalizowanej pod kątem pamięci, korzystając ze wskazówki tabeli, takiej jak WITH (MIGAWKA).
Rozwiązanie
Ten problem został po raz pierwszy rozwiązany w następującej aktualizacji zbiorczej programu SQL Server.
Aktualizacja zbiorcza 1 dla systemu SQL Server 2014 /pl-pl/pomoc/2931693
Informacje o aktualizacjach zbiorczych dla programu SQL Server
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Obejście
Aby obejść ten problem, użyj następujących obejść:
- Użyj wskazówki tabelarycznej WITH (MIGAWKA) ze zmienną tabeli.
- Ustaw opcję bazy danych MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT na wartość WŁ.
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.