PR

Oracle ExadataによるDWH高速化

2009年10月28日(水)
井上俊子

フロントDBサーバー側でも処理を高速化

 Oracle Exadata V2における高速化ポイントの最後は、バックエンドのStorage Serverの手前に位置する、フロント側のDB Serverにおける並列処理とリソース制御による高速化手法です。

■パラレル・クエリ

 単一のクエリを複数のプロセスに分割し、CPU(core)を効果的に使って高速に処理するパラレル・クエリ機能は、ほとんどのデータベース製品に実装されています。Oracle Exadataは、Oracle Real Application Clusters(RAC)の構成をとっているので、高可用性/拡張性に加えて、インターノード・パラレルクエリ(IPQ)により、DBサーバー側のクエリ処理をスケールアウトできます。

 IPQは、単一のクエリをRAC環境の複数のノードでパラレルに実行する仕組みです。サービス単位でクエリの実施ノードを制御することも可能です(図3-1)。

 特に、以下のような条件に当てはまる場合、IPQを実行することで、パフォーマンスの改善やハードウエア・リソースの有効活用につながると考えられます。

・DWHのDSS(意思決定支援システム)処理のような非常に大きな問い合わせ処理を行っている
・単一ノードのみでのパラレル処理ではCPUネックになるがディスクI/Oには余裕がある
・問い合わせ実行ノード以外のノードではCPU、メモリのリソースに余裕がある

 また、Oracle Database 11gR2では、新たなパラレル処理機能として、Oracle Database自体でのインメモリー・パラレル実行が可能となりました。

 DWHのクエリなどのような大容量データに対する複雑なクエリに対して、RAC環境の複数のノードのメモリにオブジェクトを分散して、パラレル検索をインメモリーで実行することにより、高速化を図ります。

優先度合いに応じてCPUやI/Oリソースを割り当てる

■リソース制御によるワークロードの管理

 これまで、単一のクエリの高速化機能について説明しましたが、最後に、さまざまなワークロードを抱えるDBシステムについて考えます。これは、優先順位に応じてリソース配分を明示的に行うことにより、性能を維持するという考え方です。

 最後のグラフ(図3-2)は、Oracle Exadataにおける、混在ワークロード時の検証結果です。OLTP系の更新処理を実施しつつ、同時に大量データの検索処理を実施した場合、どういった影響が出るのかを確認したものになります。

 Oracle Exadataでは、従来から可能だったCPUのリソース管理に加えて、I/Oリソースの制御も可能となりました。異なるユーザー(サービス)間、異なるDB間で、I/Oレベルでリソースを制御できます。

 折れ線は、Oracle Exadataで処理したトランザクション数を時間経過で表したものです。縦軸はTPS(1秒あたりのトランザクション処理数)値、横軸は時間です。

 グラフの上側については、特別な処理は行わず、検索/更新処理を実施しています。検索処理が始まると、更新処理にも影響が出てきており、検索終了に合わせてTPSも回復しています。

 下側のグラフは、I/Oのリソース制御を実施した場合の結果です。OLTPには90%、検索処理には10%のI/Oリソース割り当てを行っています。検索処理へのI/Oリソースを制限することで、OLTP処理への影響が出ないように実行するわけです。

 このように、Oracle Exadataでは、DWH処理だけでなくOLTP系の業務システムを混在させることができます。これにより、実現が難しいと言われていたリアルタイム検索も可能となり、鮮度の高い新しいデータにアクセスできるため、より質の高い意思決定に役立てることができます。

■まとめ

 さて、これまで4回にわたり「データベースの高速化」というテーマで、DBベンダーが提供する機能について説明してきました。

 DB製品の説明をしていると、特にアプライアンス製品の場合ですが、「どちらが速いんですか?」とよく聞かれます。ですが、速い/遅いは、なにを速くしたいのか、目的は何か、によって変わります。

 ハードウエアで実現できる高速化、ソフトウエアで実現できる高速化、それぞれ一長一短ありますが、一番重要なことは、第1回でも述べた「明確なゴール」です。性能改善の目的は何か、本当に高速化が必要なのか、事前に整理を行った上で、適切な手法を選択してください。

 今回の連載が、皆さまの今後のシステム構築の参考になれば幸いです。

伊藤忠テクノソリューションズ株式会社
ITエンジニアリング室 ミドルウェア技術部 DB技術課所属。1996年に伊藤忠テクノソリューションズ(CTC)入社。入社後は主にDB論理/物理設計担当として各種開発プロジェクトを経験。2008年より現職。Oracle製品プリセールスや構築、チューニング支援に携わる。

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています