Oracle 並行相關的初始化引數
Oracle資料庫並行操作,特別是在RAC環境,一定程度上能夠提升資料庫的效能,所以對相關的初始化引數的瞭解是必要的,這篇文章將根據實際的案例討論Oracle資料庫的部分並行引數。
Oracle資料庫相關的並行引數:
下面是實際Oracle RAC環境下,Oracle並行引數的設定,我們將優先討論這些引數:
PARALLEL_ADAPTIVE_MULTI_USER
Property | Description |
---|---|
Parameter type | Boolean |
Default value | true |
Modifiable | ALTER SYSTEM |
Range of values | true | false |
PARALLEL_ADAPTIVE_MULTI_USER, when set to true, enables an adaptive algorithm designed to improve performance in multiuser environments that use parallel execution. The algorithm automatically reduces the requested degree of parallelism based on the system load at query startup time. The effective degree of parallelism is based on the default degree of parallelism, or the degree from the table or hints, divided by a reduction factor.
當PARALLEL_ADAPTIVE_MULTI_USER引數設定為TRUE,啟用設計的適當演算法,在多使用者環境下使用並行執行提升效能。這個演算法基於查詢開始時的系統負載自動減少請求的並行度。有效的並行度是基於預設的並行度,或者來自表或HINT的並行度,透過減少係數進行分割。
The algorithm assumes that the system has been tuned for optimal performance in a single-user environment.
演算法假定系統在單使用者環境下按照最優效能被調整。
Tables and hints use the default degree of parallelism.
表和HINT使用預設的並行度。
PARALLEL_MAX_SERVERS
Property | Description |
---|---|
Parameter type | Integer |
Default value | PARALLEL_THREADS_PER_CPU * CPU_COUNT * concurrent_parallel_users * 5 |
Modifiable | ALTER SYSTEM |
Range of values | 0 to 3600 |
Oracle RAC | Multiple instances can have different values. |
Note:
This parameter applies to parallel execution in exclusive mode as well as in a Real Application Clusters environment.
PARALLEL_MAX_SERVERS specifies the maximum number of parallel execution processes and parallel recovery processes for an instance. As demand increases, Oracle Database increases the number of processes from the number created at instance startup up to this value.
PARALLEL_MAX_SERVERS指定例項最大並行執行程式和並行恢復程式數。隨著增長需求,Oracle資料庫需要增加程式數,從例項啟動時建立的數目到增長值。
In the formula, the value assigned to concurrent_parallel_users running at the default degree of parallelism on an instance is dependent on the memory management setting. If automatic memory management is disabled (manual mode), then the value of concurrent_parallel_users is 1. If PGA automatic memory management is enabled, then the value of concurrent_parallel_users is 2. If global memory management or SGA memory target is used in addition to PGA automatic memory management, then the value of concurrent_parallel_users is 4.
根據上面的公式,分配給concurrent_parallel_users的值,執行在例項的預設並行度依賴於記憶體管理設定。如果禁用自動記憶體管理(手動模式),那麼concurrent_parallel_user的值是1,如果啟用PGA自動記憶體管理,那麼concurrent_parallel_users的值是2。如果除了PGA自動記憶體管理外,還使用了全域性記憶體管理或者SGA記憶體target,那麼concurrent_parallel_users的值是4。
If you set this parameter too low, then some queries may not have a parallel execution process available to them during query processing. If you set it too high, then memory resource shortages may occur during peak periods, which can degrade performance.
如果設定這個引數過小,那麼某些查詢在查詢過程中可能沒有並行執行程式活動。如果設定這個引數過大,那麼在峰值期間記憶體資源可能不足,導致效能下降。
PARALLEL_MIN_SERVERS
Property | Description |
---|---|
Parameter type | Integer |
Default value | 0 |
Modifiable | ALTER SYSTEM |
Range of values | 0 to value of PARALLEL_MAX_SERVERS |
Oracle RAC | Multiple instances can have different values. |
Note:
This parameter applies to parallel execution in exclusive mode as well as in a Real Application Clusters environment.
PARALLEL_MIN_SERVERS specifies the minimum number of parallel execution processes for the instance. This value is the number of parallel execution processes Oracle creates when the instance is started.
PARALLEL_MIN_SERVERS指定例項並行執行程式數的最小值。這個值是例項在啟動時,Oracle建立的並行執行程式數。
PARALLEL_THREADS_PER_CPU
Property | Description |
---|---|
Parameter type | Integer |
Default value | Operating system-dependent, usually 2 |
Modifiable | ALTER SYSTEM |
Range of values | Any nonzero number |
Note:
This parameter applies to parallel execution in exclusive mode as well as in a Real Application Clusters environment.
PARALLEL_THREADS_PER_CPU specifies the default degree of parallelism for the instance and determines the parallel adaptive and load balancing algorithms. The parameter describes the number of parallel execution processes or threads that a CPU can handle during parallel execution.
PARALLEL_THREADS_PER_CPU指定例項預設的並行度,確定合適的並行和負載均衡演算法。這個引數描述並行執行程式數,或者在並行執行期間CPU能處理的執行緒數。
The default is platform-dependent and is adequate in most cases. You should decrease the value of this parameter if the machine appears to be overloaded when a representative parallel query is executed. You should increase the value if the system is I/O bound.
預設值依賴於平臺,在大多數情況下都是合適的。當執行一個典型的並行查詢時,伺服器出現過載的情況,應該減少這個引數的值。如果系統在I/O的邊界應該增加這個值。
在並行引數方面,有以下最佳實踐:
- 確保監控活動並行伺服器程式的數量並計算要應用於 PARALLEL_MIN_SERVERS 的平均值。可透過以下操作完成:
Select * from v$pq_syssstat;
Then: Get/save the value for row "Servers Highwater"
- 根據您的硬體情況最佳化 PARALLEL_MAX_SERVERS的值。最開始可以使用 (2 * ( 2 個執行緒 ) *(CPU_COUNT)) = 4 x CPU 計算,然後使用測試資料對更高的值重複測試。
- 考慮設定 FAST_START_PARALLEL_ROLLBACK。此引數可確定將有多少個程式用於事務恢復(在 redo 應用後執行)。為了確保在出現計劃外故障後仍能獲得高效的工作負載,最佳化事務恢復顯得非常重要。只要系統不大量佔用 CPU,最佳實踐是將此引數設定為值“HIGH”。這會導致 Oracle 使用四倍於 CPU 個數 (4 X cpu_count) 的並行程式進行事務恢復。此引數的預設值是“LOW”,或兩倍的 CPU 計數 (2 X cpu_count)。
- 對於 11gR2 之前的版本,將 PARALLEL_EXECUTION_MESSAGE_SIZE 從預設值(通常為 2048)增加到 8192。對於基於資料倉儲的系統(透過 PQ 傳輸大量資料),可以將其設定的更高。在版本 11gR2 中,PARALLEL_EXECUTION_MESSAGE_SIZE 的預設值是 16K,經證明,該值在大多數情況下都能夠滿足要求。
參考文章:《RAC 和 Oracle Clusterware 最佳實踐和初學者指南(平臺無關部分) [ID 1526083.1]》
告警日誌:
在某些資料庫啟動的時候還能從告警日誌的最開始位置看到以下的資訊:
出現此告警的原因是預設計算出的parallel_max_server的值1280超過了process的最大值1000,動態調整到小於process的值。
--end--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-761919/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE並行相關的引數Oracle並行
- 並行相關的幾個引數並行
- 釋義Oracle 11r2中並行執行相關引數Oracle並行
- pgsql 並行相關配置SQL並行
- oracle初始化引數Oracle
- ORACLE初始化引數的配置Oracle
- Oracle初始化引數的來源Oracle
- Oracle幾個初始化引數Oracle
- Oracle RAC初始化引數管理Oracle
- oracle 常見初始化引數Oracle
- ORACLE初始化引數:AUDIT_TRAILOracleAI
- Oracle FILESYSTEMIO_OPTIONS初始化引數Oracle
- 2 Day DBA-管理Oracle例項-關於初始化引數Oracle
- ORACLE初始化引數檔案介紹Oracle
- Oracle USE_LARGE_PAGES初始化引數Oracle
- Oracle SQL92_SECURITY初始化引數OracleSQL
- Oracle初始化引數設定new(轉)Oracle
- Oracle建庫必備的核心初始化引數Oracle
- 搭建Oracle DataGurad需要的常用初始化引數Oracle
- Oracle修改初始化引數(initialization parameter)scope的選項Oracle
- Oracle 9i初始化引數檔案Oracle
- oracle10g初始化引數說明Oracle
- 【原創】Oracle 初始化引數&效能檢視Oracle
- 詳解Oracle 10g、11g和CHECKPOINT相關的初始化引數Oracle 10g
- Oracle11g自動記憶體管理(AMM)相關的初始化引數Oracle記憶體
- Oracle 11.2中控制並行的新引數Oracle並行
- ORACLE 25個需要深思熟慮重要的初始化引數Oracle
- 最影響Oracle系統效能的初始化引數(zt)Oracle
- Oracle 9i初始化引數檔案(轉)Oracle
- oracle相關的linux核心引數OracleLinux
- ORACLE RAC資料庫中的初始化引數的設定Oracle資料庫
- oracle 關於--引數檔案Oracle
- PostgreSQL並行查詢相關配置引數SQL並行
- Linux 核心引數 和 Oracle相關引數調整LinuxOracle
- Linux 核心引數及Oracle相關引數調整LinuxOracle
- Oracle Database 11gR2初始化引數知多少OracleDatabase
- oracle sga配置相關的os 核心引數Oracle
- parallel並行度的相關操作、概念、引數解釋Parallel並行