国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 數據庫并行查詢

數據庫并行查詢

來源:千鋒教育
發布人:xqq
時間: 2023-12-04 18:57:26 1701687446

數據庫并行查詢是指針對查詢語句使用并行處理。當目標語句發生全表掃描、全分區掃描及索引快速全掃描的情況時,優化器如果滿足一些前提條件下是可以選擇使用并行處理的。前提條件有:

1)會話并行查詢特性:可以在會話一級啟用或禁用并行查詢,默認情況下是啟用的。啟用、禁用命令分別如下:

此外,還可以通過下面查詢來查看當前會話是否啟用了并行查詢。

這個屬性可返回enabled、disabled、forced,分別對應啟用、禁用和強制。其中,強制是一種特殊的狀態,它會強制查詢語句指定并行度查詢,甚至會覆蓋后面講到的對象并行屬性。設置方法如下:

2)SQL語句并行提示:并行提示可以覆蓋上面會話級別的設置。一方面,即使在會話級別禁用了并行查詢,提示也可以強制執行一個并行操作。唯一可以用來關閉并行查詢的方法是將parallel_max_servers設置為0。另一方面,即使在會話級別強制設置了一個并行度,提示還是可以改變另外一個并行度。并行提示是使用/*+parallel*/來指定的。

3)對象設置并行屬性:在SQL語句相關的對象中可設置并行屬性,也可使用并行查詢。這是在對象定義時指定的,也可以后期修改。

下面通過幾個示例,看看如何通過提示、對象屬性及強制會話來完成并行查詢。下面首先看看使用提示的方式。

下面解釋一下執行步驟:

ID=6:掃描表的一部分,具體掃描哪個部分取決于它的父操作(即PX BLOCK ITERATOR)。

ID=5:將全表掃描分解為較小的掃描,這是一個涉及塊范圍粒度的操作。

ID=4:每個掃描匯總其count(status)的值。

ID=2、3:將每個子結果傳遞給查詢調度進程。從這個執行計劃中,可以通過TQ字段識別出哪些操作是由一組從屬進程來執行的。

在這個計劃中,操作3、4、5、6擁有同樣的值(Q1,00),因此它們是由同一組從屬進程執行的(從執行計劃中無法得知從屬進程的數量)。此外需要注意,操作3中的從屬進程與查詢調度進程(QC)之間的由并行到串行(P->S)的通信過程非常必要。

ID=1,進一步匯總這些結果,并輸出答案。

下面看看使用對象屬性的方式。

下面看看使用強制會話的方式。

還要注意一點,會話默認是啟動并行查詢的,可以將會話關閉。

通過上面的示例可見,并行查詢執行計劃與普通的串行操作的不同。下面說明在并行操作過程中各部分之間的關系。在并行執行的執行計劃中會使用并行操作之間的下列關系。在dbms_xplan產生的輸出中,并行操作之間的關系是通過字段IN-OUT來提供的。

并行到串行(P->S):并行操作發送數據到串行操作。通常是并行進程將數據發給并行調度進程。

并行到并行(P->P):一個并行操作發送數據給另一個并行操作。當存在兩組從屬進程時就會用到它。

并行與父操作合并(PCWP):執行計劃中的相同從屬進程并行執行一個操作及其父操作(父操作也是并行的)。因此,沒有通信發生。

并行與子操作合并(PCWC):執行計劃中的相同從屬進程并行執行一個操作及其子操作(子操作也是并行的)。因此,沒有通信發生。

串行到并行(S->P):一個串行操作發送數據給并行操作。由于大部分時間這個操作的效率都較差,因此應該避免使用它。有兩個情況會產生這個操作。一個是單一進程產生數據的速度可能沒有多個進程消費數據的速度快。如果是這樣,消費者可能花費更多的時間來等待數據而不是真正地處理數據。另一個是,串行執行的操作和并行執行的操作發送數據需要一些不必要的通信。

tags: IT培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT