- PR -

Oracleのヒント句、PARALLEL句について

1
投稿者投稿内容
sirouto
ベテラン
会議室デビュー日: 2004/11/05
投稿数: 50
投稿日時: 2008-02-15 11:49
いつもお参考にさせて頂いております。

Oracleのヒント句のPARALLEL句について質問がございます。
どなたかご存知の方、ご教授お願い致します。
Oracleについて初心者ですので、どうかよろしくお願い致します。

@ヒント句での明示的な記載方法について

記載方法ですが多重度やテーブル名の指定は必須なのでしょうか?
私が調べたところ

select /*+ PARALLEL(TableA,2) */ ......... from TableA
の様に明示的に記載している例ばかり見つかったのですが、

select /*+ PARALLEL */ .................. from TableA
select /*+ PARALLEL(TableA) */ .......... from TableA

の様に明示的に記載しなくてもOracleが自動で多重処理してくれはしないのでしょうか?


A複数テーブルへの記載方法について
複数テーブルの結合等を行っている場合の記載方法は以下の様な形で良いのでしょうか?

select /*+ PARALLEL(TableA,2) PARALLEL(TableB,2)*/ from TableA,TableB

また、@の質問内容と同じですが明示的でなくても良い場合は
select /*+ PARALLEL*/ from TableA,TableB
又は
select /*+ PARALLEL(TableA) PARALLEL(TableB)*/ from TableA,TableB
の様な記載も可能なのでしょうか?

Bexist文等を使用している箇所はその都度PARALLEL句の記述は必要なのでしょうか?

select /*+ PARALLEL(TableA,2)*/ .. from TableA ...exists (select /*+ PARALLEL(TableB,2) */ ......... )

の様になるのでしょうか?




システム開発を行っておるのですが1つの画面だけのSQLが遅く調査しております。
INDEXもさんざん調査したのですがこれ以上はINDEXでは対応できなく、仕様面やテーブルレイアウト等も変更はできないので困っております・・・・・。
PARALLEL句で少しでも早くなればと思っております。

以上です、よろしくお願い致します。m(_ _)m





ほったて
ベテラン
会議室デビュー日: 2007/11/10
投稿数: 68
投稿日時: 2008-02-15 12:50
hintは構文通りに書かないと無視されるって最近のマニュアルには書いてないのかな...。

とりあえずparallelヒントには表しか指定できません。
並列度は指定しなければ表に定義された値が指定されませんかね(SQLリファレンス見りゃ一発でわかる内容かと)。


で、全件検索されるからむやみに指定するもんでもないと思うんですが。
1

スキルアップ/キャリアアップ(JOB@IT)