メモリ最適化オブジェクトの持続性の定義

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

メモリ最適化テーブルには持続性のオプションが 2 つあります。

SCHEMA_AND_DATA (既定)
このオプションは、スキーマとデータの両方の持続性を提供します。 データ持続性のレベルは、完全に持続性があるトランザクションと持続性に遅延が生じているトランザクションのどちらとしてコミットするかによって異なります。 完全に持続性があるトランザクションでは、ディスク ベース テーブルの場合と同様に、データとスキーマに対して同じ持続性が保証されます。 遅延した持続性ではパフォーマンスが向上しますが、サーバー クラッシュまたはフェールオーバー時にデータが失われる場合があります。 (遅延持続性の詳細については、「 コントロールのトランザクションの持続性」を参照してください。)

SCHEMA_ONLY
このオプションは、テーブル スキーマの持続性を確認します。 SQL Serverが再起動されるか、Azure SQL データベースで再構成が発生すると、テーブル スキーマは保持されますが、テーブル内のデータは失われます。 (これは tempdb のテーブルとは異なり、テーブルとテーブルのデータはどちらも再起動時に失われます)。持続性のないテーブルを作成するための一般的なシナリオは、ETL プロセスのステージング テーブルなどの一時的なデータを格納することです。 SCHEMA_ONLY持続性により、トランザクション ログが回避され、I/O 操作が大幅に削減されますが、引き続きチェックポイント操作に参加してテーブル スキーマのみを保持できます。

既定のSCHEMA_AND_DATA テーブルを使用する場合、SQL Serverはディスク ベースのテーブルと同じ持続性を保証します。

トランザクションの持続性
メモリ最適化テーブルに対して (DDL または DML の) 変更を行った完全に持続性があるトランザクションをコミットする場合、持続性のあるメモリ最適化テーブルに対して行った変更は永久保存されます。

メモリ最適化テーブルに対して遅延した持続性トランザクションをコミットする場合、トランザクションは、インメモリ トランザクション ログがディスクに保存された後にのみ持続可能になります。 (遅延持続性の詳細については、「 コントロールのトランザクションの持続性」を参照してください。)

再起動の持続性
クラッシュまたは計画的なシャットダウン後にSQL Server再起動すると、メモリ最適化の永続テーブルが再インスタンス化され、シャットダウンまたはクラッシュ前の状態に復元されます。

メディア障害の持続性
障害が発生したディスクまたは破損したディスクに持続性のあるメモリ最適化オブジェクトの永続化されたコピーが 1 つ以上含まれている場合、SQL Serverバックアップと復元機能によって、新しいメディア上のメモリ最適化テーブルが復元されます。

参照

メモリ最適化オブジェクト用ストレージの作成と管理