アットマーク・アイティ @IT@IT自分戦略研究所QA@ITイベントカレンダー+ログ
 @IT > Oracle Technology [Oracle 10gの高パフォーマンスを実現した背景にあるテクノロジ]
 
@IT[FYI] 企画:アットマーク・アイティ 営業企画局
制作:アットマーク・アイティ 編集局

掲載内容有効期限:2004年5月31日

 
Oracle 10gの高パフォーマンスを
実現した背景にあるテクノロジ
パフォーマンス向上を最大の目標に掲げてOracle 10gを開発したというオラクル。特にWindows環境でのパフォーマンス向上に注力した



   「パフォーマンスの向上はOracleエンジニアの優先課題だった」

 オラクルはいつよりも気合いを入れて、「Oracle Database 10g」を開発した。ソースコードの改変も行われている。それは、Oracle6のときに行ったような、ゼロベースからの見直しではない。建築にたとえるならリフォームだ。基礎工事や柱などには手をつけないが、床材や壁材などはそっくり入れ替えて、まるで新しい建物のように生まれ変わらせるあの手法。具体的には、プログラムの冗長性を徹底的に排除し、新機能を加えつつも大胆なスリム化を図っている。
 
 「その中においても、Oracle Database 10gでのさらなるパフォーマンス向上は、オラクルのエンジニアたちが高いプライオリティを置いた命題だった」と、日本オラクル マーケティング本部 システム製品マーケティンググループ 担当マネージャー 山本哲也氏は語る。このバージョンには高速処理のための工夫が随所に盛り込まれているのである。

 まずはエンジンコア部分だ。データベースエンジンプログラムの高速化に大きな役割を果たすのはオプティマイザである。今回、Oracle Database 10gではコストベースオプティマイザを全面採用。それにより全表走査では、Oracle9iに比べて速度が2倍になり、かつコストが1/2に低減した。またPL/SQLの実行エンジンも改良されており、ループ処理や演算の多いプログラムの高速化を実現している。
 
 次にチューニング機能である。これまで、Oracleのパフォーマンスは、データベースエンジニアのチューニングテクニックに左右された。そのため、Oracleの性能にばらつきが出るのは否めない事実だった。データベース利用のすそ野が広がっている今日、性能がエンジニアの技量に依存するのは時勢に合わない。そこでオラクルはパフォーマンス・チューニングの2大ポイントであるメモリ・チューニングとSQLチューニングの方法に大きくメスを入れた。
 
 メモリ・チューニングの到達点は自動化である。Oracle Database 10gには、初期のバージョンから開発に携わってきたオラクルの“グル”的エンジニアのチューニングナレッジが搭載されており、SGAもPGAも最大容量を指定すれば、その中での配分はOracleが最適化してくれる。そのため、エンジニアがあれこれと頭を悩ませなくても最初からパフォーマンスを稼ぐことができるのだ。もちろん、アプリケーションの要件により細部を自分で調整したいときには、マニュアルでチューニングすることも可能である。

   最適なSQLチューニングをアドバイス

 SQLの記述方法もまた、パフォーマンスに大きな影響を与える。今回大きな変貌を遂げた管理ツール「Oracle Enterprise Manager 10g」にはSQLに関するアドバイザが2つ搭載された。1つが「SQL Access Advisor」であり、もう1つが「SQL Tuning Advisor」である。
 
 前者はインデックスやマテリアライズド・ビューなど、SQLの実行効率を高めるオブジェクトの利用についてアドバイスをするもので、後者は、より効率的なSQL文をアドバイスするもの。アドバイスするだけでなく、それによってパフォーマンスがどう変化するかを確認することもできる。これまではどれがパフォーマンス上で問題となっているSQLなのかを突き止めることすらも難しかったが、10gからは、いわば常に講師がそばにいる状態でSQLコーディング/チューニングが可能になったのである。

 一方、大容量データのエクスポート/インポートにおけるパフォーマンス向上に貢献するのは、Data Pumpである。データ転送のアルゴリズムを1から見直すとともに圧縮技術を採用するなどして、Oracle9iまでのエクスポート/インポートと比べて、インポートで15〜20倍、エクスポートで1.6倍の高速化を実現しており、しかもそれらはパラレル処理でスケーラビリティを出すことができる。Direct Path API(DPAPI)を実装し、ストリームデータアクセスを高速化。これにより、データウェアハウス分野などでは、ソースデータベース、ターゲットデータベースがともにOracle Database 10gであれば、サードパーティのETLツールを利用することなく、大規模なセントラルデータウェアハウスが容易に構築可能だ。

   Windows環境での性能向上を実現

 そして、これこそがエンドユーザーが渇望し、オラクルエンジニアも至上命題とした機能だったというWindows環境でのパフォーマンスの向上がある。具体的には、Windows NT系のカーネルに備わってるユーザーモードスレッドであるファイバーモデルに対応した。プロセスモニタやログライタがこのファイバを使って動作するため、コンテキストスイッチが高速化し、メモリ効率や接続速度の向上が実現した。ファイルI/O機能の拡張も行われ、Oracle Database 10gではすべてのタイプのファイルへの非同期I/Oをサポート。中断のないスムーズなプロセス処理が可能になったのである。

Windowsを含めすべてのファイルに対する非同期I/Oをサポート。中断することなくスムーズにプロセス処理を行えるようにした(クリックで拡大します。提供:日本オラクル)

 正式発表以来、次々と出されるOracle Database 10gでのさまざまなベンチマーク更新ニュースは、こうした広範囲で行われた機能強化がもたらした結果といえるだろう。

(次回は3月2日に記事を公開予定です)
Oracle Technology トップページへ

 

Oracle 10g関連リンク
日本オラクル

グリッド・コンピューティング説明

Oracle Database 10g

Oracle Application Server 10g

Oracle Developer Suite 10g
イベント・セミナー情報
Oracle Road Show 2004 kitakyushu
→ 5月26日(水)<北九州>

Oracle Road Show 2004 Obihiro
→ 5月26日(水)
<帯広>

Oracle Road Show 2004 Oita
→ 5月27日(木)<大分>

Oracle Road Show 2004 Nagano
→ 5月27日(木)
<長野>

Oracle Road Show 2004 Hamamatsu
→ 5月28日(金)
<浜松>

そのほかのイベント・セミナー情報

@IT 関連記事

Oracle 10gが分かるニュースサイト「OracleInsight

【トレンド解説】ネットワーク業界にもグリッドの波
データベースセキュリティの基礎のキソ
Linuxで動くJavaアプリケーションサーバ・カタログ「Oracle9i Application Server」
Oracleマイスター養成講座
Javaデータアクセスの基礎


</comment> <tr> <td bgcolor="#EEEEEE"><font size="2"><a href="javascript:KeepIt();"> <img src="/club/keepoint/images/ico_kpt.gif" alt="kee&lt;p&gt;oint保存" border="0" align="absmiddle" width="24" height="18">kee&lt;p&gt;ointで保存</a></font></td> </tr> <comment>

 
@ITトップ@IT Special インデックス会議室利用規約プライバシーポリシーサイトマップ