我有使用並行選擇一個SQL查詢,像這樣我們可以動態指定並行度嗎?
INSERT/*+ APPEND PARALLEL (tst, 6) */ INTO test_table tst
(
**************
**************
**************
)
SELECT /*+ PARALLEL (a, 6) */ DISTINCT
**************
**************
**************
FROM src_table a;
正如你可以看到這裏,我已經硬編碼的程度,但是,我不想這樣做,因爲數量執行此代碼的所有DB中的CPU不相同。
My requirement:
我需要查詢V$PARAMETER
可用的CPU數量,並在我的查詢中使用result-2
的值。事情是這樣的......
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個並行線程,不論可用的CPU。這是一個正確的方法嗎?如果沒有,我的要求是否還有其他解決方案?
該死......我是怎麼錯過這個選項的。謝謝Olie。 – Vivek