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

適用対象: SQL Server Azure SQL Database Azure 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 のバックアップおよび復元機能により、新しいメディアのメモリ最適化テーブルが復元されます。

参照

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