H/Wの進化を活かしきるSQL Serverのインメモリテクノロジー
前回は、SQL Serverがもつ広範な適応能力を皆様にご紹介する目的でSQL Server入門シリーズを連載しました。こちらの記事を読んで頂いた方々は、SQL Serverという製品がリレーショナルデータベースという単体機能だけでなく、データを取り巻くあらゆる物事を実現する為の総合的なデータプラットフォームであるということを理解頂けたものと思います。今回の連載では、今一度原点に立ち返り、SQL Serverのデータベースエンジンに絞って、ここ数年のお客様との会話で話題にあがることが多い”インメモリ”と“セキュリティ”に関して取り上げていきたいと思います。どちらも背景にはパフォーマンスの向上や情報漏洩の防止といった観点があるわけですが、ある種、二律背反の関係にあるこの両者はデータベースを使ったシステムの開発、保守、運用をしていく中で特に重要な要素です。今回の連載では、SQL Serverが持つインメモリ関連テクノロジーに関して本稿含めて全3回、セキュリティに関して1回の全4回でお届けします。
日々のSQL Serverの商談活動でお客様と会話する際に「”インメモリ”だから早いんでしょ?」という質問をよく頂きます。”インメモリ” = 速い という漠然としたイメージが読者の皆さんの中、ひいてはこの業界の中に植え付けられているように感じています。
これはこれで間違いではないのですが、今回の記事ではSQL Serverとメモリ関連テクノロジーを少し掘り下げてみたいと思います。
SQL Serverに限らず古今東西の様々なリレーショナルデータベースは基本的にメモリが今よりもはるかに高価で貴重なものだった時代に設計されています。よって、データは処理に必要な時にメモリに読み出し、通常はディスクに置いておくのに最適なアーキテクチャーを取っています。
しかし、この30年でメモリの価格は大幅に下がり、CPUはマルチコアが当たり前の世の中になってきました。実際に今日、CPUが40コア、搭載メモリが1TBというような一昔前のモンスターマシンは500万円以下で手に入るようになってきています。
我々は、”インメモリだから速いですよ”と一口に片付けてしまうのではなく、お客様が実行するワークロードに最適なテクノロジーをご提供したいと考えています。SQL Serverではそれぞれのワークロードに応じて最適な選択ができるよう、2種類のメモリ関連テクノロジー(Hekaton、xVelocity)を様々に組み合わせた実装を行っています。

ここでメモリを活用した技術アプローチと本連載において使用する用語について簡単に整理しておきます。
インメモリ型(メモリ常駐型)
メモリの大容量化・低価格化により、数TBのメモリを搭載したサーバーを安価に導入できるようになりましたが、それに伴って市場には”インメモリ(データのメモリ常駐型)データベース”が登場してきました。ストレージよりも高速なメモリ上にデータを常駐させておくことで、従来のディスクベースのデータベースに比べ、処理によっては数十倍も高速になるケースも出てきました。しかし、導入に際してはまだ考慮すべき点があります。
- メモリよりもデータが大きくなった(データがメモリに収まらない)場合、システムは動作しなくなる。また、起動時のメモリへのデータロードに時間がかかる
- メモリにデータを載せただけでは従来のオンメモリ型と大きく変わらないが、関連するテクノロジーの改良により驚異的なパフォーマンス向上を可能とする
オンメモリ型(メモリ最適化型)
近年、メモリの大容量化・低価格化だけでなく、CPUの高集積化・高速化も飛躍的な進歩を遂げています。メモリ最適化テクノロジーは、単にデータをメモリにロードして高速化しようとするだけでなく、高度な符号化・圧縮テクノロジーでより効率的にメモリを使用すると共に、CPUのマイクロアーキテクチャに適した命令やキャッシュ活用したテクノロジーです。
- メモリにデータが収まる場合にはインメモリテクノロジーと同等のスピードが得られる
- メモリにデータが収まらない場合でも、従来のデータベースに比べて高速処理が実現できる
インメモリ+α型(メモリ常駐が基本、但し動作モード変更が可能)
SQL Server の分析データベース機能である Analysis Services 表形式モードは、マイクロソフトが開発したメモリ最適化データ管理テクノロジーであるxVelocity を利用したインメモリ型(メモリ常駐型)分析データベースです。ただし、Analysis Services 表形式モードにおいて扱うデータがメモリに収まらない場合や、データソースへリアルタイムアクセスする必要がある場合には DirectQuery 機能によりメモリへのロードを回避することもできるようになっています。
これらのテクノロジーは、SQL Serverを利用して下さる皆さんにとって使い難い、一部の人しか使えないものであっては意味がありません。我々マイクロソフトは、ライセンスやソフトウェアコンポーネントといった側面においてもSQL Serverという製品を購入頂ければ追加で何かを必要とすることなく全てのインメモリ関連テクノロジーをご利用頂けるようにしています。
この記事は参考になりましたか?
- 今さら聞けないSQL Serverのメモリ最適化テクノロジーと、押さえておきたいSQL Serverのデータベースセキュリティ連載記事一覧
- この記事の著者
-
坂本禎尚(サカモト ヨシヒサ)
日本マイクロソフト株式会社 日本マイクロソフトでSQL Serverを中心としたデータプラットフォーム製品群の技術営業を担当しているチームに所属しています。データベースのコアスキルはDB2、Oracleで学び、SQL Serverはマイクロソフトに入社してから勉強し10年を超えたところで、BI/BA領域はもちろん、Azureのデータプラットフォームサービス含めた領域が現在の担当範囲です。技術営業を担当しているチームのブログ https://blogs.msdn.microsoft.com/dataplatjp/ にも投稿していますので、こちらも是非フォロー下さい。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア