SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

最新イベントはこちら!

Enterprise IT Women's Forum

2025年1月31日(金)17:00~20:30 ホテル雅叙園東京にて開催

Security Online Day 2025 春の陣(開催予定)

2025年3月18日(火)オンライン開催

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

EnterpriseZine(エンタープライズジン)

EnterpriseZine編集部が最旬ITトピックの深層に迫る。ここでしか読めない、エンタープライズITの最新トピックをお届けします。

『EnterpriseZine Press』

2024年秋号(EnterpriseZine Press 2024 Autumn)特集「生成AI時代に考える“真のDX人材育成”──『スキル策定』『実践』2つの観点で紐解く」

DB Press

後発Oracleはデュアルフォーマットでデータベースのインメモリ化を加速する

 DB Onlineでは、「2014年版 ー最新データベース高速化手法を紐解けー」と題し、代表的なデータベース高速化手法に着目して、それらの利点や苦手なポイントはどこか、どういう際にはどの手法が効果的なのか、同じ高速化機能でもベンダー間でどのような違いがあるかなどを解説する特集企画を実施する。第一弾として紹介するのは、7月から正式に日本でも提供が開始されたOracle Database 12cのインメモリーデータベース機能「Oracle Database In-Memory」だ。

Oracleのインメモリはデュアル・フォーマットでローもカラムもメモリに

 インメモリーデータベースはSAP HANAが先陣を切り、IBMがDB2 10.5でBLU Acceleration機能を提供してそれに追随、さらにMicrosoftがSQL Server 2014でHekatonと呼ばれていたメモリ最適化のOLTPエンジンを組み込んだ。

 先行する各社の動きに対し、メジャーデータベースとしては最後に登場したのがOracle Database In-Memoryだ。このOracle Database In-Memoryの特長は3つある。まずは「デュアル・フォーマット・データベース」というアーキテクチャを採用したこと。これはロー型、カラム型の2つのフォーマットでメモリ内にデータを保持するもので、これによりメモリ上でOLTPとデータウェアハウスなどの分析系処理両方の高速化を同時に実現したのだ。ちなみに、SAP HANAもいったんロー型でデータを受け取り最終的にカラム型でインメモリにデータを持つ構造となっており、メモリー上にローもカラムもあるという意味ではOracleのデュアル・フォーマットと似ている。

 日本オラクル データベース事業統括 製品戦略統括本部 プロダクトマーケティング本部 Cloud & Big Data推進部 部長の佐藤裕之氏
日本オラクル 佐藤裕之氏

 もう1つの特長が、インメモリ機能を導入するのにほとんど手間がいらないこと。ある意味「スイッチをOnするだけです」と言うのは、日本オラクル データベース事業統括 製品戦略統括本部 プロダクトマーケティング本部 Cloud & Big Data推進部 部長の佐藤裕之氏だ。インメモリ機能で利用するメモリサイズとカラム型でインメモリに載せる対象を指定するだけでいい。Oracle Database In-Memoryは、すべてのデータをメモリに載せる必要はない。メモリは多いに越したことはないが、それなりの容量でも対象を絞り込むことで高速化できる。

 3つ目の特長は既存のOracle Databaseのさまざまな機能が、インメモリ機能を有効にしてもそのまま活用できることだ。インメモリ化しても、アプリケーションなどからはいままでどおりのOracle Databaseと何ら変わりないものに見える。可用性、拡張性が欲しければ従来と同様Real Application Clustersの構成をとればいい。その他のセキュリティ機能なども、インメモリ化してもそのまま利用できる。バックアップなども同様であり、運用管理手順を特に変更する必要はない。

2つのフォーマットをメモリ上に持つための工夫

 ロー型のインメモリの部分は、従来Oracle Databaseが利用してきたバッファキャッシュそのものだ。「それにプラスアルファで、カラム型のフォーマットをメモリ上に持つようにしました」と佐藤氏。ロー型、カラム型を同時にメモリー上に持つことで、OLTPだけでなく検索や分析の処理も高速化する。

 つまりOracle Database In-Memoryでは、メモリ上にはローとカラムで重複したデータを持つ。双方でデータの不整合が起こらないよう、データは自動的に同期をとる。インメモリ上のロー型、カラム型のどちらにアクセスするかは、ユーザーやアプリケーションが意識する必要はない。「オプティマイザが判断し、自動で切り替わります」とのことだ。

 オプティマイザの機能でロー型、カラム型でデータの読み込みが透過的にできることは理解しやすい。一方、データの更新はどのような処理になるのだろうか。

 「基本的には既存のOracle Databaseと同じです。カラム型と同期をとるためにメモリ内にジャーナルと呼ばれる更新のログ領域を持っていて、それを利用しロー型からカラム型にデータをコピーします。検索時には、カラムとジャーナルの両方を参照し値を返します。これにより、仮にカラムのデータがまだ同期されていなくても、ジャーナルから最新の値を返すことができます」(佐藤氏)

 ジャーナルに溜まるデータが閾値に達すると、最新のデータがディスクからカラムに同期される。現時点のIn-Memoryではメモリ上にあるジャーナルのデータをマージするわけではなくディスクを介して同期する。

 表領域、パーティション、カラム、マテリアライズドビューなどを選択し、メモリ上に載せる対象のデータを指定できる。どのくらいのメモリ空間を確保すればいいかは、「In-Memory Advisor」を利用することで事前に調べることが可能だ。カラム領域へのデータのロードは、データベースの起動時か最初のクエリーが発生した際にデータがないときに行われる。データには優先順位が付けられ、高いものが優先される。

 Oracle Database In-Memoryは、たんにカラム型のデータをメモリ上に持つから高速になるだけではない。メモリ上での処理を高速化する工夫も当然行っている。その1つが1命令で複数データを扱う処理方式であるSIMD(Single Instruction/Multiple Data)の有効活用だ。「SIMDを活用することでコア当たり1秒間に数10億行の処理が可能になります。コアを増やせばこの並列処理はさらにスケールします」と佐藤氏。さらにメモリ上でのJoin処理も内部的には最適化されており、集計やレポーティングなどの処理高速化に寄与している。

 このように、カラム型のデータをメモリ上に追加することで検索や分析処理が速くなることは、Oracle Databaseのエンジニアであれば容易に理解できるだろう。では、基本的にはいままでの構造と変わらないバッファキャッシュの仕組みであるOLTP処理はなぜ速くなるのだろうか。その理由が検索や分析が十分に速くなるので、ほとんど検索や分析にしか利用しないインデックスがいらなくなる。それにより、インデックスの再構成なども当然無くなり更新処理が大幅に速くなるという。

 「インデックスのメンテナンスコストは無くなります。さらに、チューニングのジレンマも無くなる。インデックスがいらなくなることが最大のチューニング効果です」(佐藤氏)

次のページ
インメモリ機能がOracle Database 12cへの更新を加速する

この記事は参考になりましたか?

  • Facebook
  • X
  • Pocket
  • note
DB Press連載記事一覧

もっと読む

この記事の著者

谷川 耕一(タニカワ コウイチ)

EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/6087 2014/08/25 00:00

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング