SHOEISHA iD

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

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

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

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

お申し込み受付中!

DB Press

ラリー・エリソンがOracleのインメモリーデータベースを披露


富士通の豊木氏の基調講演でスタートを切ったOracle OpenWorld、そのあとの基調講演を引き継いだのは、その日、世界最高峰のヨットレース「アメリカズカップ」で自らがサポートする「ORACLE TEAM USA」が2勝し、かなり機嫌の良かったOracle CEO ラリー・エリソン氏だ。

待望のインメモリーデータベースがOracle Database 12cのオプション機能として登場

世界最高峰のヨットレース「アメリカズカップ」で自らがサポートする「ORACLE TEAM USA」が2勝し、かなり機嫌の良かったOracle CEO ラリー・エリソン氏
世界最高峰のヨットレース「アメリカズカップ」で
自らがサポートする「ORACLE TEAM USA」が2勝し、
すこぶる機嫌のよい、ラリー・エリソン氏

 最初に発表したのが、待望のインメモリーデータベース機能。これが注目されるきっかけを作ったのは、もちろんSAPのHANAだろう。それを追いかけるようにMicrosoftもSQL Serverの次期バージョンに、インメモリー機能の搭載を発表。IBMもDB2にBLUアクセラレーションという、メモリーを有効に活用するカラム型データベース機能を追加した。

 一方Oracleは、TimesTenというインメモリーデータベースを以前から提供している。これはOracle Databaseとは別製品で、Oracle Databaseと連携させ利用することが多い。対して今回発表されたインメモリーデータベース機能は、「Oracle Database 12c In-Memory Option」として提供される。つまり、既存のOracle Databaseの1機能として、インメモリーの高速処理が追加になったのだ。

 「クエリーを速くする、100倍は速くなる。同じマシンでも、インメモリーオプションを使えば瞬間的に答えが出てくる」とエリソン氏。このパフォーマンスを、Oracleではデータウェアハウスのような検索処理だけでなく、OLTPの処理でも機能させたいと考えた。

 「クエリーのスピードが加速すると、OLTPの処理速度が落ちるようじゃ困る。そうならないやり方を考えた。トランザクションのプロセスも、少なくとも倍以上は速くなる」(エリソン氏)

 OLTP用にデータベースを設計すると、行の形でデータを格納する。これは、リレーショナルデータベースが登場して以来ずっと続いている。数行の処理であれば、同時に極めて高速に更新できるのがその特長だ。対して5年ぐらい前から、行ではないやり方を提案する研究者が増えてきた。それがクエリー処理を速くする列の形でのデータ格納方法。これを使うと、レポート作成などはかなり速くなる。

 Oracleでは、それよりもベターな方法を考えた。つまり、行も列も両方同時に書き込んだらいいというもの。さらに、その両方をメモリーに入れたのだ。なので、インメモリー・オプションでは、列にデータを挿入すると、行も更新される。その逆も同様で、常に両方のフォーマットを維持する。この方法では、列をインメモリーにしたほうが100倍以上速くなる。さらに、両方を入れるようにすると、クエリーだけでなくOLTPも高速化される。

 列ストアーでは、インメモリーに圧縮されて保存される。行はトランザクションのリカバリー用にロールバックされるが、列の場合はそのオーバーヘッドがないのでかなり高速だ。実際にメモリー上の列にデータが入れられると、CPUが16コアあればその1つ1つのコアがメモリー上のデータを並列スキャンする。この並列処理は、CPUの中でベクトル指示で行われ、複数の値を同時にスキャンするので「ものすごく高速だ」とエリソン氏。単一の列だけでなく、複数のテーブルをジョインするような複雑なクエリーでもかなりの高速化が図られる。

次のページ
インデックスがなくなりOLTPも高速化する

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/5170 2013/09/24 13:25

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング