2016-11-23 22 views
0

oracle実行アーキテクチャの面で可能かどうかわかりませんので、質問したいと思います。
いくつかのスキーマ名(たとえば、sch1、sch2、sch3)を格納するテーブルがあり、このテーブルを使用してカーソル内で動的にすべてのクエリを作成しています。
です。私のクエリは次のようになります:Oracle Convert Select Union All to Parallel Select

select col1, col2 from sch1.tab1 
union all 
select col1, col2 from sch2.tab1 
union all 
select col1, col2 from sch3.tab1 

例:

select /*+ parallel(tab,4)*/ * from tab 

のような並列ヒントを持つテーブルを選択すると、4つのセッションが開き、1回の処理で処理されます。
この方法ですべてのテーブルを照会することは可能ですか?

+0

ヒントとして扱われる場合、 '+'はコメントの最初の文字でなければなりません。 '/ * + parallel(tab、4)* /'を実行します。 –

答えて

0

documentationここでは、パラレル実行の仕組みについて説明します。 1つのセッションがあります。むしろ4つのスレッドのように考えることができます。他の言語のパラレルプログラミングとまったく同じように、最大​​の利益は、いくつかのチャンクが独立して実行できる場合です。したがって、クエリで計算が必要な場合や、別の表領域に読み書きできる場合など、いくつかの利点があります。しかし、クエリが物理ディスク上の同じ場所から読み取るだけであれば、パラレルではボトルネックがIOになるので大きな利益は得られません。

関連する問題