現象
Microsoft SQL Server 2014 でREAD_COMMITTED_SNAPSHOT オプションを設定して、Read Committed Snapshot アイソレーション (rcsi) が有効になっているデータベースを使用していることを前提としています。 メモリ最適化テーブルとメモリ最適化テーブル変数の両方に、ユーザートランザクションのコンテキスト外の同じステートメントでアクセスすると、操作が失敗することがあります。 さらに、次のエラーが表示されることがあります。
Msg 41359。 READ COMMITTED 分離レベルを使って、メモリ最適化されたテーブルにアクセスするクエリでは、データベースオプション READ_COMMITTED_SNAPSHOT が [オン] に設定されている場合、ディスクベースのテーブルにアクセスすることはできません。 WITH (SNAPSHOT) などのテーブルヒントを使って、メモリ最適化テーブルに対してサポートされている分離レベルを指定します。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 の累積更新プログラム1 /en-us/help/2931693
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
回避策
この問題を回避するには、次の回避策を使用します。
-
テーブルのヒント (SNAPSHOT) とテーブル変数を使用します。
-
データベースオプション MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT を [オン] に設定します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。