マイクロソフトの次期SQL Server、インメモリDBとストアドプロシージャのネイティブコンパイラ搭載へ

2012年11月13日

マイクロソフトの次期SQL Serverで搭載される新機能、コードネーム「Hekaton」には、インメモリデータベースエンジンや、ストアドプロシージャをネイティブコードにコンパイルすることで高速実行を実現するコンパイラなどが搭載されていると、マイクロソフトのSQL Server Blogにポストされたエントリ「Breakthrough performance with in-memory technologies」で説明されています。

Breakthrough performance with in-memory technologies - SQL Server Team Blog - Site Home - TechNet Blogs

今年リリースされた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は、すでに一部の顧客に対してプライベートテクノロジープレビューとして提供されているそうです。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : Microsoft , SQL Server , リレーショナルデータベース



≫次の記事
OpenFlowベンチャーのBig Switch Networksが初の製品リリース。OpenFlowコントローラ、仮想ネットワーク、ネットワークモニタリングツールの3つ
≪前の記事
マイクロソフト、Windows Phone 8のコンパイラをクラウドで提供する計画

カテゴリ



Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



新着記事 10本


PR - Books


fig

fig

fig