oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
生活随笔
收集整理的這篇文章主要介紹了
oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[size=medium][color=red][b] 1.用途[/b][/color][/size]
強行啟用并行度來執行當前SQL。這個在Oracle 9i之后的版本可以使用,之前的版本現在沒有環境進行測試。也就是說,加上這個說明,可以強行啟用Oracle的多線程處理功能。舉例的話,就像電腦裝了多核的CPU,但大多情況下都不會完全多核同時啟用(2核以上的比較明顯),使用parallel說明,就會多核同時工作,來提高效率。 但本身啟動這個功能,也是要消耗資源與性能的。所以,一般都會在返回記錄數大于100萬時使用,效果也會比較明顯。
[size=medium][color=red][b] 2.語法[/b][/color][/size]
/*+parallel(table_short_name,cash_number)*/ 這個可以加到insert、delete、update、select的后面來使用(和rule的用法差不多,有機會再分享rule的用法)
開啟parallel功能的語句是:
alter session enable parallel dml;
這個語句是DML語句哦,如果在程序中用,用execute的方法打開。
SELECT /*+PARALLEL(n)*/ * FROM table
查看Oracle能利用的最大并行度
SQL> show parameters cpu
NAME TYPE VALUE
------------------------------------ ----------- -------
cpu_count integer 8
parallel_threads_per_cpu integer 2
resource_manager_cpu_allocation integer 8
值得注意的是,在實際使用中,計算機除了運行Oracle外,同時還在運行其他程序(如系統程序)。因此,用PARALLEL調用CPU線程值應設定為小于最大CPU線程的數值(筆者一般采用的值為:CPU線程總數-2)以避免將所有CPU資源強行分配給Oracle使用后導致系統無響應等情況發生。
強行啟用并行度來執行當前SQL。這個在Oracle 9i之后的版本可以使用,之前的版本現在沒有環境進行測試。也就是說,加上這個說明,可以強行啟用Oracle的多線程處理功能。舉例的話,就像電腦裝了多核的CPU,但大多情況下都不會完全多核同時啟用(2核以上的比較明顯),使用parallel說明,就會多核同時工作,來提高效率。 但本身啟動這個功能,也是要消耗資源與性能的。所以,一般都會在返回記錄數大于100萬時使用,效果也會比較明顯。
[size=medium][color=red][b] 2.語法[/b][/color][/size]
/*+parallel(table_short_name,cash_number)*/ 這個可以加到insert、delete、update、select的后面來使用(和rule的用法差不多,有機會再分享rule的用法)
開啟parallel功能的語句是:
alter session enable parallel dml;
這個語句是DML語句哦,如果在程序中用,用execute的方法打開。
SELECT /*+PARALLEL(n)*/ * FROM table
查看Oracle能利用的最大并行度
SQL> show parameters cpu
NAME TYPE VALUE
------------------------------------ ----------- -------
cpu_count integer 8
parallel_threads_per_cpu integer 2
resource_manager_cpu_allocation integer 8
值得注意的是,在實際使用中,計算機除了運行Oracle外,同時還在運行其他程序(如系統程序)。因此,用PARALLEL調用CPU線程值應設定為小于最大CPU線程的數值(筆者一般采用的值為:CPU線程總數-2)以避免將所有CPU資源強行分配給Oracle使用后導致系統無響應等情況發生。
總結
以上是生活随笔為你收集整理的oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在线查毒网站
- 下一篇: 相机模型-鱼眼模型/Omnidirect