2010年2月20日土曜日

Oracle Database 11g Release 2で注目すべき10+1の新機能

Oracle Database 11g Release 2で注目すべき10+1の新機能:askTom Live - builder by ZDNet Japan

Oracle Database 11g R2で注目すべき10+1の技術

 米Oracleの発表によれば、Oracle Database 11g R2には実に200を超える新機能が含まれているという。その中でKyte氏が紹介したものは、同氏自身が「ここで紹介する技術は(OracleのCEO)Larry Ellisonがステージで語るような類のものではなく、もっと技術的に深い内容になります」と前置きしているように、特に現場のデータベース管理者やアプリケーション開発者が知っておくべき類のものである。

1. Do it yourself Parallelism

 ビルトインのパッケージを使うことによって、簡単に並列処理を実現できるようになった。この機能によって、ある命令を実行するのに、それを任意の 数の処理に分割して個別に実行することができる。並列に実行する処理の個数を指定することもできるので、例えば「10個に分割して1個ずつ順番に実行す る」といったことも可能。

2. Analytics are the coolest thing to happen to SQL since the keyword SELECT

 Oracle Database 11g R2では「ListAgg」という関数が追加された。ListAggはグループ化された行に存在する一連の値を1つのリストにして出力する機能を持った関数であり、集約関数や分析関数によって集約された値の内訳を簡単に出力することができるようになった。従来でもsys_connect_by_path関数による階層問い合わせなどによって同様の処理が実現できたが、ListAgg関数によってこれが飛躍的に簡単になったという。

3. Execute on a directory

 ディレクトリオブジェクトに対するRead/Writeに加えて、Oracle Database 11g R2ではExecuteの操作も可能になった。これによって任意のプログラムを実行し、その結果をテーブルに格納するなどの処理を実現できる。セッション ではgzipファイルに格納されたデータを、gunzipコマンドを介して直接テーブルに書き込むというデモが紹介された。

4. Recursive Subquery Factoring

 ANSI SQL形式の再帰with句が追加された。Oracleでは従来よりconnect by句による階層問い合わせをサポートしていたが、11g R2からはそれに加えて再帰with句を使うことができるようになった。これはconnect byよりも理解しやすいだろうとのこと。

5. Improved Time Travel

 フラッシュバック・データ・アーカイブ(FDA)の機能が拡張されてより使いやすくなった。FDAはデータベースをリカバリすることなく、過去のテーブルの履歴を管理できる機能である。Oracle Database 11g R2ではこのFDAにおいてDDLコマンドのサポートが追加された。

6. You've got mail

 ファイルがディレクトリに格納された際に、イベントによってそれを通知することができるようになった。これによりDBMSだけでファイルの監視やファイル生成をトリガとした何らかの処理の実行が行えるようになった。

7. Deferred Segment Creation

 非同期なセグメントの作成がサポートされた。すなわち、最初に何らかのデータが格納されるまでテーブルセグメントの作成を遅らせることができるようになった。

8. Flash Cache

 SSD(Solid State Disk)を拡張バッファキャッシュとして利用できるようになった。SGAメモリが一杯になった場合、通常はオーバーしたデータを磁気ディスクにスワップするが、このスワップ先としてSSDを指定をすることによって高速なアクセスが実現できる。

9. Parallel Improved

 並列処理について、3つの大きな改善が行われた。1つ目は新しいアルゴリズムによってテーブルに対して適切な並列度を自動的に決定できるようになったこと。このアルゴリズムでは並列度はクエリごとの予測実行時間によって決められるという。

 2つ目は、キューを利用することで並列に行われる処理同士でリソースを適切に分け合うことができるようになったこと。3つ目はテーブルをメモリにロードする際に、複数のメモリに分割して格納できるようになったことである。

10+ Edition-based Redefinition

 システムを止めることなくアプリケーションをアップデートすることができるようになった。Oracle Database 11g R2ではひとつのデータベース中に複数のバージョンのストアドプロシージャを共存させることができ、これによって古いバージョンから新しいバージョンへの移行をエンドユーザーに意識させることなく行えるようになったという。

 Kyte氏によれば、この10番目については非常に大きなフィーチャーであり、セッションで紹介した内容は提供される機能のほんのごく一部に過ぎ ないという。セッションタイトルを「11 things」に変更した理由も、この機能が他の機能の2個分以上に相当するから、とのことだ。

 本カンファレンスではTwitterの公式タグとして「#askTomJP」というハッシュタグが用意された。同タグによって参加者がTwitterに投稿したつぶやきを、リアルタイムなレポートとして閲覧することもできる。