SQL Server開発チームは、インメモリOLTPに新機能を追加しました。これらのすべての機能により、新しいアプリケーションを構築できるだけでなく、全体的なパフォーマンスとスケーリングを向上させることができます。以下は、SQL Server2016CTP3で利用できるインメモリOLTPの改善点のリストです。
Transaction-SQLの改善:
ネイティブモジュールの表面積のクエリ:
- 論理和(OR、NOT)
- UNIONとUNIONALL
- SELECT DISTINCT
- 外部参加
- SELECTステートメントのサブクエリ(EXISTS、IN、スカラーサブクエリ)
- ネイティブにコンパイルされたモジュールのネストされた実行(EXECUTE)
- ネイティブにコンパイルされたインラインテーブル値関数(TVF)
- EXECUTE AS CALLERのサポート–ネイティブモジュールではEXECUTEAS句は不要になりました
- 組み込みのセキュリティ関数と組み込みの数学関数のサポートの強化
メモリ最適化テーブルのサポート:
- メモリ最適化テーブル間の外部キー制約
- チェック制約
- 一意の制約
- INSERT / UPDATE / DELETE操作のトリガー(AFTER)。メモリ最適化テーブルのトリガーはネイティブにコンパイルされるため、WITHNATIVE_COMPILATIONを使用します。
ネイティブにコンパイルされたプロシージャ、関数、およびトリガーのALTERおよびsp_recompileのサポート
スキーマとインデックスの変更に対するALTERTABLEのサポート
新しいALTERTABLE…ADD/DROP / ALTER INDEX構文が、メモリ最適化テーブルのインデックス変更のために導入されました。
照合とコードページの完全サポート:
- (var)char列は、SQLServerでサポートされている任意のコードページを使用できます
- インデックスキーの文字列は、任意のSQLServer照合を使用できます
- ネイティブにコンパイルされたモジュールでの式、およびメモリ最適化テーブルの制約では、任意のSQLServer照合を使用できます
インメモリOLTP用のスカラーユーザー定義関数
パフォーマンスとスケーリングの改善:
- データサイズの増加:データベースは、SCHEMA_AND_DATAを使用してメモリ最適化テーブルに最大2テラバイトのユーザーデータを含めることができるようになりました
- 永続層のスケーラビリティの向上
- 解釈されたTransact-SQLを使用してメモリ最適化テーブルにアクセスするための並列プランのサポート
- HASHインデックスの並列スキャンサポート
SQL Server Management Studioの機能強化:
- トランザクション分析レポートでは、データコレクターまたは管理データウェアハウスの構成は不要になりました。これで、レポートを本番データベースで直接実行できるようになりました。データベースを右クリックして、[レポート]->[標準レポート]->[トランザクションパフォーマンス分析レポート]を選択するだけです。
- SQLServerデータベース内の複数のオブジェクトの移行の適合性を評価するための移行評価用のPowerShellコマンドレット。
- データベースを右クリックし、[タスク]->[インメモリOLTP移行チェックリストの生成]を選択して移行チェックリストを生成します
クロス機能のサポート:
- 複数のアクティブな結果セット(MARS)接続で、メモリ最適化テーブルとネイティブにコンパイルされたストアドプロシージャにアクセスできるようになりました
- 透過的なデータ暗号化のサポート。データベースがENCRYPTION用に構成されている場合、MEMORY_OPTIMIZED_DATAファイルグループ内のファイルも暗号化されるようになりました。
- インメモリOLTPでの一時的なシステムバージョン管理の使用のサポート。詳細については、メモリ最適化テーブルを備えたシステムバージョンの時間テーブル を参照してください。
- インメモリOLTPワークロードからネイティブにコンパイルされたコードのクエリストアサポート。詳細については、「インメモリOLTPでのクエリストアの使用」を参照してください。
- メモリ最適化テーブルの行レベルのセキュリティ
まだまだあります!