dba_tables 中degree 欄位是從SYS.tab$.degree這個欄位查詢出來的 ,公式為 lpad(decode(t.degree, 32767, 'DEFAULT', nvl(t.degree,1)),10),也就是 32767為default,建表時沒有設定degree為空白則degree為1;在實際的sql執行中oracle並行會受到cpu核心數的限制,還有這個參數parallel_degree_policy預設為manul 時實際並行度cpu_count * parallel_threads_per_cpu
查詢table 的degree
select o.OWNER,o.OBJECT_NAME,t.DEGREE, LPAD (DECODE (t.DEGREE, 32767, 'DEFAULT', NVL (t.DEGREE, 1)), 10) from SYS.tab$ t,dba_objects o where t.obj#=o.OBJECT_ID
and o.OBJECT_NAME='CUSTOMERS';
設定表的並行度為4
alter table tablename parallel 4;
設定表的並行度為default
alter table tablename parallel;
取消表的並行度
alter table tablename noparallel;
為了有助於理解可以查看著兩個文章
http://www.eygle.com/archives/2008/04/parallel_degree_instances.html
https://uhesse.com/2011/10/12/auto-dop-differences-of-parallel_degree_policyautolimited/
為了有助於理解可以查看著兩個文章
http://www.eygle.com/archives/2008/04/parallel_degree_instances.html
https://uhesse.com/2011/10/12/auto-dop-differences-of-parallel_degree_policyautolimited/