2016-08-26 11 views

答えて

2

はい、下記の条件を満たす場合はEFを使用できます。

プレミアムサービス層にあるデータベース。

In-Memory OLTP機能の後に作成されたデータベースは、 になりました。

新しいデータベースは、メモリ内OLTP機能が アクティブになる前に作成された データベースからリストアされた場合、メモリ内OLTPをサポートできません。

Transact-SQL Constructs Not Supported by In-Memory OLTP

メモリに最適化されたテーブル、ネイティブコンパイルされたストアドプロシージャ、および ユーザ定義関数は、解釈ディスクベーステーブルによって支持されている完全なTransact-SQLの表面 領域をサポートしていませんTransact-SQL ストアドプロシージャ、およびユーザー定義関数。サポートされていない機能の1つを として使用しようとすると、サーバーはエラーを返します。

New Features and Enhancements in SQL Server 2016

複数のアクティブな結果セット(MARS)のサポート:インメモリOLTPは今 は、クエリを使用してMARSとネイティブにコンパイルストアドプロシージャをサポートしています。 これにより、次の要求を送信する前に各結果セットを取得する必要なく、複数のクエリからデータを要求することができます。 MARSは、 によって無効にされているため、 を接続で明示的に有効にする必要があります。 MARSのサポートにより、Entity Frameworkは がインメモリOLTPで実装するのが容易になります。

enter image description here

その耐久性ですか?

彼らは完全に、トランザクションの耐久性があり、ちょうどディスクベースのテーブルのようなT-SQL ステートメントを使用してアクセスすることができます。テーブル の1つのバージョンがアクティブメモリに格納され、標準バージョンは ハードディスクに格納されます。ただし、トランザクションはメモリ内のバージョン からのデータに直接アクセスするため、より高速に実行されます。

+0

プレミアムサービス層のみですか? 私はデモデータベースで私をテストすることができます。古いデータをバックアップし、新しいデータにロードするだけです。構造は不変の変更なので、それはできます。 – SeduceAdmin

+0

はい、しかし、あなたは 'プレミアムサービス層にあるデータベース 'を持っていなければならないので、production.forで使うことはできません。これは現時点での必要条件です。 – Sampath

+0

そして、インメモリのデータはディスク上で非同期保存されますか?他の方法でデータが失われないようにするには? – SeduceAdmin

関連する問題