あなたがここに見ることができるように私は、この並列度を動的に指定できますか?
INSERT/*+ APPEND PARALLEL (tst, 6) */ INTO test_table tst
(
**************
**************
**************
)
SELECT /*+ PARALLEL (a, 6) */ DISTINCT
**************
**************
**************
FROM src_table a;
のようなものを並列処理を使用して選択し、SQLクエリを持って、私は度ハードコードされているが、私は多くのことから、それを行うにはしたくありませんこのコードが実行されているすべてのDBでCPUが同じではありません。
My requirement:
利用可能なCPU数についてはV$PARAMETER
を照会し、照会にはresult-2
という値を使用する必要があります。かかわらず、使用可能なCPUの、このような何か...
DECLARE
degree varchar2(1);
BEGIN
select value-2 INTO degree from v$parameter where name='cpu_count';
INSERT/*+ APPEND PARALLEL (tst, degree) */ INTO test_table tst
(
**************
**************
**************
)
SELECT /*+ PARALLEL (a, degree) */ DISTINCT
**************
**************
**************
FROM src_table a;
END;
しかし、私はそれがために期待どおりに動作していないと私は32個の並列スレッドを参照してください。これは正しい方法ですか?そうでない場合は、私の要件のための他の解決策はありますか?
ええと....私はこのオプションをどうやって逃しましたか? Olieに感謝します。 – Vivek