Oracle

PARALLEL_MIN_PERCENT 如何影響並行執行?

  • January 15, 2017

PARALLEL_MIN_PERCENT 的參考資料

PARALLEL_MIN_PERCENT 允許您指定並行執行所需的請求並行執行程序數的最小百分比。設置此參數可確保除非有足夠的資源可用,否則不會執行並行操作。預設值 0 表示未設置最小程序百分比。

考慮以下設置:

PARALLEL_MIN_PERCENT = 50

PARALLEL_MIN_SERVERS = 5

PARALLEL_MAX_SERVERS = 10

如果 10 個並行執行程序中有 8 個忙,則只有 2 個程序可用。如果您隨後請求並行度為 8 的查詢,則不會滿足最低 50%。

並行執行的初始化和調整參數

$$ PARALLEL_MIN_SERVERS $$指定並行執行所需的請求並行執行程序的最小百分比。預設值為 0,如果沒有可用的並行伺服器程序,則並行語句將串列執行。

如果查詢執行時至少 50% 的伺服器不可用於查詢,會發生什麼情況?查詢是排隊的,是串列執行的,還是拋出諸如可用的並行查詢從站不足之類的錯誤?

我相信對於該配置,您會收到如下錯誤:

ORA-12827: 可用的並行查詢從站不足

請參閱PSORGORAFAQ中的參考資料。

如果伺服器上的並行配置不同,則 DOP 可能會降級。在某些情況下,如果沒有足夠的 PX 伺服器可用,它將被降級以串列執行。這裡有幾個例子parallel_degree_policy=MANUAL

由於只有 12 台可用的 PX 伺服器,因此該語句從 DOP=8 降級為 DOP=6,並獲得所有 12 台可用的 PX 伺服器。

考慮此時送出的另一個查詢,DOP=8。儘管此查詢需要 16 台 PX 伺服器,但由於沒有可用的 PX 伺服器剩餘,它不會給出任何結果。此查詢被降級為 DOP=1 並連續執行。

我在執行自己的程式碼時經歷過。查看 DOP 何時降級的一種方法是通過 SQL 監視器。以下是您可以看到的一些消息範例:

由於自適應 DOP,350 DOP 降級

351 DOP 降級由於資源管理器最大 DOP

352 DOP 由於程序數不足而降級

353 DOP 降級,因為從站未能加入

引用自:https://dba.stackexchange.com/questions/161063