DEPTNO DEPTNO
DEPTNO にハッシュ関数をかけ
にハッシュ関数をかけにハッシュ関数をかけにハッシュ関数をかけ 該当するものを探索該当するものを探索該当するものを探索 該当するものを探索
ジョイン
ハッシュエリアを展開するメモリ 領域はPGA内に取られる
<STEP2>
<STEP2><STEP2>
<STEP2>
外部表の読み込みとジョイン(
外部表の読み込みとジョイン(外部表の読み込みとジョイン( プローブ・フェーズ外部表の読み込みとジョイン(プローブ・フェーズプローブ・フェーズプローブ・フェーズ ))))0 1 2
(30 DALLAS )
(10 BOSTON (40 CHICAGO) (20 NEW YORK
71
71
•
ハッシュジョイン処理に使用されるメモリの最大値を指定する 初期化パラメータ•
サーバプロセス毎に動的に割り当てられる (PGAの領域を利 用)•
ハッシュジョイン処理が、HASH_AREA_SIZE を越える領域が 必要な場合、一時表領域を使用する•
デフォルトはSORT_AREA_SIZEの2倍•
一時表領域への書込みが発生している場合、大きく設定する–
スワップが発生するほど大きく設定しない事–
サーバプロセス毎に取られる事にも注意する事HASH_AREA_SIZE のチューニング
72
72
ジョイン処理に対するヒント
ORDERD FROM句で指定された順序で表を結合させる USE_NL(table) ネスティッド・ループ・ジョインで結合させる USE_MERGE(table) ソート・マージ・ジョインで結合させる
USE_HASH(table) ハッシュジョインで結合させる
73
73
DSSのチューニング
• DSSシステムの特徴
• I/Oのチューニング
• パフォーマンスアップの為の機能
– ビットマップインデックス(チューニングⅠ参照) – ハッシュジョイン
– パラレルクエリー – パーティション化
– マテラアライズド・ビュー
• チューニング事例
74
74
パラレル・クエリー
AA AA B B B B CC CC A A A A B B B B C C C C A A A A BB BB C C C C
問合わせ 問合わせ問合わせ 問合わせ サーバー サーバー サーバー サーバー
A AA A
問合わせ 問合わせ問合わせ 問合わせ サーバー サーバー サーバー サーバー
B BB B
問合わせ 問合わせ問合わせ 問合わせ サーバー サーバー サーバー サーバー
C C C C
問合わせ 問合わせ 問合わせ 問合わせ サーバー サーバーサーバー サーバー
F FF F 問合わせ 問合わせ 問合わせ 問合わせ サーバー サーバーサーバー サーバー
E EE E 問合わせ 問合わせ 問合わせ 問合わせ サーバー サーバーサーバー サーバー
D D D D
問合わせ問合わせ 問合わせ問合わせ コーディネータ コーディネータコーディネータ コーディネータ
①①①
①SQL
SQL SQL SQL文の
文の文の文の実行
実行実行実行②問合わせサーバーの確保
②問合わせサーバーの確保
②問合わせサーバーの確保
②問合わせサーバーの確保 ③読み込み範囲の指定③読み込み範囲の指定③読み込み範囲の指定③読み込み範囲の指定
④データの読み込み
④データの読み込み
④データの読み込み
④データの読み込み
⑤ソートの実行
⑤ソートの実行⑤ソートの実行
⑤ソートの実行
⑥検索結果
⑥検索結果
⑥検索結果
⑥検索結果
を戻す
を戻すを戻すを戻すSELECT deptno,sum(sal) FROM emp GROUP BY deptno;
並列度3 並列度3 並列度3 並列度3
75
75
並列度の設定
① SQL文でのヒント句での並列度
– SELECT /*+ FULL(emp) PARALLEL(emp,5) */ ~
② 表定義でのパラレル句での並列度