マイクロソフトの次期SQL Server、インメモリDBとストアドプロシージャのネイティブコンパイラ搭載へ
マイクロソフトの次期SQL Serverで搭載される新機能、コードネーム「Hekaton」には、インメモリデータベースエンジンや、ストアドプロシージャをネイティブコードにコンパイルすることで高速実行を実現するコンパイラなどが搭載されていると、マイクロソフトのSQL Server Blogにポストされたエントリ「Breakthrough performance with in-memory technologies」で説明されています。
今年リリースされたSQL Server 2012では、コード名xVelocityと呼ばれるカラムストアインデックス機能が搭載され、高速なデータ分析を実現しました。
次バージョンのSQL Serverに搭載される新機能、コードネームHekatonではトランザクション処理とビジネスロジックの高速化に焦点が当てられており、そのためにインメモリデータベースエンジンとストアドプロシージャのコンパイラなどが搭載されるとのことです。
インメモリデータベースに最適化されたエンジン
マイクロソフトの説明をかみ砕いて説明してみましょう。
HekatonのインメモリデータベースエンジンはSQL Serverのデータベースエンジンに統合されており、インメモリ処理を行うかどうかをテーブルごとに設定できるようになっています。
現在のデータベースエンジンも、データの一部をメモリバッファ上において高速な処理を実現していますが、このメモリ上のデータはあくまでもハードディスクにあるデータを一時的にメモリに置いてあるという位置づけです。このため、メモリ上のデータに対する操作は洗練されていないのに対し、Hekatonのインメモリデータベースエンジンはメモリ上のデータアクセスに最適化されているため、圧倒的に高速なトランザクション処理を行います。
もちろん通常のデータベース処理とHekatonの処理は混在可能で、トランザクション処理も完璧に行われます。
Hekatonでメモリ上に置くテーブルは次のオプションで定義されます。
create table Order.hekaton
(
:
) with (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)
ストアドプロシージャからネイティブコード生成
Hekatonには、ストアドプロシージャからネイティブコードを生成するコンパイラも備わっています。従来のストアドプロシージャはインタプリタで解釈されるのに対し、ネイティブコードのおかげでストアドプロシージャ内のビジネスロジックを非常に高速に実行できます。
ネイティブコードの生成は、ストアドプロシージャの宣言時に以下のように行います。
create procedure order_proc_hekaton @order_number integer
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
Hekatonを搭載した次期SQL Serverは、すでに一部の顧客に対してプライベートテクノロジープレビューとして提供されているそうです。
あわせて読みたい
OpenFlowベンチャーのBig Switch Networksが初の製品リリース。OpenFlowコントローラ、仮想ネットワーク、ネットワークモニタリングツールの3つ
≪前の記事
マイクロソフト、Windows Phone 8のコンパイラをクラウドで提供する計画