管理並行SQL執行的進程

本節介紹的並行執行功能可用於Oracle數據庫企業版數據庫

本節介紹如何管理SQL語句的並行處理。在此配置中,Oracle數據庫能夠將處理SQL語句的工做分爲多個並行進程。服務器

許多SQL語句的執行能夠並行化。並行度是能夠與單個操做相關聯的並行執行服務器的數量。並行度由如下任何因素決定:oracle

  •  聲明中的PARALLEL子句
  • 對於查詢中引用的對象,建立或更改對象時使用的PARALLEL子句
  • 插入語句中的並行提示
  • 由數據庫肯定的默認值

並行化表建立」中包含使用並行SQL執行的示例。性能

 本節包含如下主題:spa

  • 關於並行執行服務器
  • 更改會話的並行執行

有關使用並行提示的信息,請參閱「Oracle數據庫性能調整指南code

 關於並行執行服務器server


 

實例啓動時,Oracle數據庫將建立一個並行執行服務器池,可用於任何並行操做。稱爲並行執行協調器的進程調度並行執行服務器池的執行,並協調從全部這些並行執行服務器向用戶發回結果。htm

並行執行服務器默認啓用,由於默認狀況下,PARALLEL_MAX_SERVERS初始化參數的值設置爲> 0。這些進程可供各類可利用並行性的Oracle數據庫功能使用。相關的初始化參數由數據庫爲大多數用戶調整,但您能夠根據須要更改它們以適合您的環境。爲了便於調整,一些參數能夠動態改變。對象

並行性可用於多種功能,包括事務恢復,複製和SQL執行。在執行並行SQL的狀況下,本書中討論的主題並行服務器進程在整個執行階段仍然與語句相關聯。當完整處理語句時,這些進程可用於處理其餘語句。blog

Oracle數據庫VLDB和分區指南獲取有關使用並行執行的更多信息

更改會話的並行執行


您能夠使用ALTER SESSION語句控制會話的並行SQL執行。

禁用並行SQL執行

使用ALTER SESSION DISABLE PARALLEL DML | DDL | QUERY語句禁用並行SQL執行。在發佈這樣的語句後,全部後續的DML(INSERT,UPDATE,DELETE),DDL(CREATE,ALTER)或者查詢(SELECT)操做都會連續執行。它們將被連續執行,而無論與所涉及的表或索引有關的任何並行屬性。可是,帶有PARALLEL提示的語句會覆蓋會話設置

如下語句禁用並行DDL操做:

ALTER SESSION DISABLE PARALLEL DDL;

 

啓用並行SQL執行

使用ALTER SESSION ENABLE PARALLEL DML | DDL | QUERY語句啓用並行SQL執行。隨後,當PARALLEL子句或並行提示與語句關聯時,那些DML,DDL或查詢語句將並行執行。默認狀況下,爲DDL和查詢語句啓用並行執行。

只有在您特別發出ALTER SESSION語句以啓用並行DML時,才能對DML語句進行並行處理:

ALTER SESSION ENABLE PARALLEL DML;

強制並行SQL執行

您能夠使用ALTER SESSION FORCE PARALLEL DML | DDL | QUERY語句強制執行並行執行的全部後續DML,DDL或查詢語句。此外,您能夠強制執行特定程度的並行性,從而覆蓋與後續語句關聯的任何PARALLEL子句。若是您在此聲明中沒有指定必定的並行度,則使用默認的並行度。強制並行執行將覆蓋SQL語句中的任何並行提示。

如下語句強制後續語句的並行執行,並將最重要的並行度設置爲5:

ALTER SESSION FORCE PARALLEL DDL PARALLEL 5;

 

 

參考資料


https://docs.oracle.com/cd/E11882_01/server.112/e25494/manproc.htm#ADMIN11186

相關文章
相關標籤/搜索