ラベル Oracle の投稿を表示しています。 すべての投稿を表示
ラベル Oracle の投稿を表示しています。 すべての投稿を表示

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に投稿したつぶやきを、リアルタイムなレポートとして閲覧することもできる。

Oracle関連開発者に捧ぐ

開発者のためのワーストプラクティス:Ask TomがLiveイベントとして上陸

2010年2月10日水曜日

2007年3月6日火曜日

オプティマイザ統計の取得方法

コストベース・オプティマイザ(CBO)を使用して、快適にシステムを稼動させるには、定期的にオプティマイザ統計を取得する必要があります。

オプティマイザ統計を取得するには、DBMS_STATSパッケージを使用します。

■スキーマ単位で統計情報を取得する方法(GATHER_SCHEMA_STATSプロシージャ)

・構文

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS
(
 ownname VARCHAR2,
 estimate_percent NUMBER DEFAULT DBMS_STATS.AUTO_SAMPLE_SIZE,
 block_sample BOOLEAN DEFAULT NULL,
 method_opt VARCHAR2 DEFAULT 'FOR ALL COLUMNS SIZE AUTO',
 cascade BOOLEAN DEFAULT TRUE,
 options VARCHAR2 DEFAULT 'GATHER'


・例文

EXECUTE DBMS_STATS.GATHER_SCHEMA_STATS ('SCOTT') ;

2007年3月1日木曜日

SQLチューニングに関連する初期化パラメータ

【SQLチューニングに関連する初期化パラメータ】

■ optimizer_index_caching
   索引走査時に何% ぐらいキャッシュヒットさせるかを指定するパラメータ。
   ・デフォルト: 0 
   ・推奨値: 80

■optimizer_index_cost_adj
   索引走査コストを通常の何% で計算するかを指定するパラメータ。
   ・デフォルト: 100 
   ・推奨値: 20

■_optim_peek_user_binds
   バインドピークに関連するパラメータ。
   ・推奨値: false → バインドピークを無効にする。   

SQL / SELECT

SQL基本編
[基本編]序章:RDBMSとは1章:SQLとは 2章:データの表示■データの検索(SELECT文) 1.全件検索 SELECT … FROM …  ・全列の表示    《構文》      SELECT * FROM 表名 ;    《説明》      *(アスタリスク)        ・特定列の表示        《構文》     SELECT 列名 [,列名…] FROM 表名 ;    《説明》 2.条件検索 SELECT … FROM … WHERE  ・あいまい検索 LIKE    《 SELECT 列名,列名 FROM 表名 WHERE ; 》  ・範囲検索 BETWEEN … AND … 3.並び換え ORDER BY  ・昇順()  ・降順() 4.グループ分け GROUP BY  ・グループ関数その1(MIN・MAX・AVG)  ・グループ関数その2(COUNT・SUM)  ・グループ後の条件指定 5.表の結合 6.その他  ・表示列の別名  ・重複データの排除3章:データの変更■データの追加(INSERT文)■データの削除(DELETE文)■データの更新(UPDATE文)4章:データの反映■データの確定(COMMIT文)■データの取消(ROLLBACK文)5章:表の定義■表の作成(CREATE文)■表の削除(DROP文)■表の変更(ALTER文)