2011年5月31日火曜日
2010年6月4日金曜日
2010年2月20日土曜日
Oracle Database 11g Release 2で注目すべき10+1の新機能
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に投稿したつぶやきを、リアルタイムなレポートとして閲覧することもできる。
2010年2月10日水曜日
無料で使える「Oracle Database XE」をインストール - builder by ZDNet Japan
2007年3月6日火曜日
オプティマイザ統計の取得方法
オプティマイザ統計を取得するには、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チューニングに関連する初期化パラメータ
■ optimizer_index_caching
索引走査時に何% ぐらいキャッシュヒットさせるかを指定するパラメータ。
・デフォルト: 0
・推奨値: 80
■optimizer_index_cost_adj
索引走査コストを通常の何% で計算するかを指定するパラメータ。
・デフォルト: 100
・推奨値: 20
■_optim_peek_user_binds
バインドピークに関連するパラメータ。
・推奨値: false → バインドピークを無効にする。
SQL / SELECT
[基本編]序章: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文)