請教各位,我在Oracle中insert時 采用append的同時,還想要加上并行度 和 noggloging,這種語法應該要怎么寫合適一點呢,是 insert /*+ append,parallel(tmp,8) nologging */ into 還是 insert /*+ append parallel(tmp,8) nologging */ into 還是 insert /*+ append, parallel(tmp,8),nologging */ into 呢,我在糾結逗號的使用 和三個引數的順序,在本地也不好驗證,大家有沒有實際使用經驗或者 更正確的寫法呢,先謝謝大家了
uj5u.com熱心網友回復:
寫成如下兩個條。alter table tmp nologging;
insert /*+ append parallel(tmp,8) */ into
uj5u.com熱心網友回復:
那 /*+ append parallel(tmp,8) */ 這個append 和 parallel 中間要加上 ',' (逗號
)嗎
uj5u.com熱心網友回復:
不用加逗號,用空格。uj5u.com熱心網友回復:
好的,謝謝,我去試試
uj5u.com熱心網友回復:
insert /* +parallel 8 nologging */不用逗號,并行后會自動append方式加載(會鎖表,謹慎)
要在會話上,開并行允許。alter session enable parallel dml;
uj5u.com熱心網友回復:
1、nologging是關鍵字,從來不是提示;2、加上append后,表上其他會話的DML會陷入等待;
3、如果想用好并行SQL:注意好系統資源使用情況;如果希望DML并行,顯式打開并行DML;最好insert陳述句與其select陳述句選擇一樣的并行度
uj5u.com熱心網友回復:
alter session enable parallel dm;
alter table tmp nologging;
insert /*+append parallel(tmp,8) */ into tmp select /*+ parallel(b,8) */ * from b;
那我這樣寫的話會有問題嗎
uj5u.com熱心網友回復:
alter session enable parallel dm;
alter table tmp nologging;
insert /*+append parallel(tmp,8) */ into tmp select /*+ parallel(b,8) */ * from b;
那我這樣寫的話可以嗎,有沒有問題
uj5u.com熱心網友回復:
可以,append 可以不加,加并行后 默認用的是append方式load
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/54029.html
標籤:高級技術
