Applies to
Oracle Database - Enterprise Edition - Version 8.1.7.0 and later
Information in this document applies to any platform.
Purpose
Give some information what can be check if we get and ORA-4031 and we use Parallel Execution
Scope
Support Analysts and DBA's
Details
Parallel Execution slave have to exchange data and messages that they can work together. For this we have to allocate memory from the shared pool or large pool. This decision depends to which value PARALLEL_AUTOMATIC_TUNING is set.
If PARALLEL_AUTOMATIC_TUNING = TRUE than we take memory from the large pool otherwise we use the shared pool. In this case we increase automatically the large pool that it should big enough.
The hidden parameter _PX_use_large_pool can also be used to control from which pool we allocate the memory. At startup of the database we allocate some memory for the "PX msg pool" to avoid fragmentation and get faster memory for the PX buffers, when PARALLEL_AUTOMATIC_TUNING or PARALLEL_MIN_SERVERS is set.
In 10g, PX message buffers are allocated from large pool if
a.) parallel_automatic_tuning = true (deprecated)
or
b.) _PX_use_large_pool = true
or
c.) sga_target is set
In 11g, PX message buffers are allocated from large pool if
a.) parallel_automatic_tuning = true (deprecated)
or
b.) _PX_use_large_pool = true
or
c.) SGA memory is auto tuned (sga_target or memory_target)
You can monitor from which area we allocate memory for PX msg buffer when we query V$SGASTAT and look for the "PX msg pool" The PX message buffer can become very large. Another area in the shared pool where we allocate memory for PX operation is the "PX subheap". This heap is small when we compare it with the "PX msg pool" and always in the shared pool.
select * from v$sgastat;
POOL NAME BYTES
----------- -------------------------- ----------
fixed_sga 453632
log_buffer 656384
shared pool enqueue 179220
..
shared pool PX subheap 167104 <<<<
..
shared pool event statistics per sess 1889720
shared pool fixed allocation callback 184
large pool PX msg pool 2949120 <<<<
large pool free memory 5439488
java pool free memory 25165824
If PARALLEL_AUTOMATIC_TUNING = FALSE the shared pool will not be increased. The user is responible to find a adequate size for the shared pool.
The size of the PX msg depends also on size of the parameter PARALLEL_EXECUTION_MESSAGE_SIZE and the degree of parallelism.
To obtain more memory usage statistics, execute the following query:
SELECT * FROM V$PX_PROCESS_SYSSTAT WHERE STATISTIC LIKE 'Buffers%';
Your output should resemble the following:
STATISTIC VALUE
------------------- -----
Buffers Allocated 23225
Buffers Freed 23225
Buffers Current 0
Buffers HWM 3620
4 Rows selected.
The amount of memory used appears in the Buffers Current and Buffers HWM statistics. Calculate a value in bytes by multiplying the number of buffers by the value for PARALLEL_EXECUTION_MESSAGE_SIZE.
The formula is not 100% correct. To avoid fragmentation of the shared/large pool we allocate in large chunks. This means the value of 'PX msg pool' can be larger than 'Buffers HWM' * PARALLEL_EXECUTION_MESSAGE_SIZE.
Recommendation
When you receive an ORA-4031 and you have set PARALLEL_AUTOMATIC_TUNING = FALSE then consider to set it to true that Oracle can tune the large pool.
When you have PARALLEL_AUTOMATIC_TUNING = TRUE than increase the large pool.
In both cases please also check the value of PARALLEL_EXECUTION_MESSAGE_SIZE.
参考至:https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=80dsfjl8t_4&_afrLoop=446004159656844
如有错误,欢迎指正
邮箱:czmcj@163.com
相关推荐
6. What does the `--cuda-parallel-hash` flag do? [@davilizh](https://github.com/davilizh) made improvements to the CUDA kernel hashing process and added this flag to allow changing the number of ...
在Java开发和部署环境中,JDK起着至关重要的作用,因为它包含了Java编译器(javac)、Java虚拟机(JVM)、Java运行时环境(JRE)以及各种开发工具,如Java文档生成器(javadoc)、性能分析器(jmap)等。 JDK 8是...
JDK还包括其他工具,如`javadoc`(生成API文档)、`jar`(打包和管理类文件)、`jmap`(内存分析)、`jconsole`(监控JVM)等,它们都是Java开发者日常工作中不可或缺的一部分。 总之,JDK 1.7.0_60是针对64位Linux...
AMD APP SDK(Advanced Micro Devices Accelerated Parallel Processing Software Development Kit)是一款由AMD公司推出的软件开发工具包,主要用于利用AMD处理器和GPU的并行计算能力。这个压缩包“AMD-APP-...
1. 多 catch 块:允许在单个catch块中捕获多个异常类型,提高了代码的简洁性。 2. try-with-resources:自动关闭资源的机制,使得资源管理更加高效和安全。 3. switch 语句支持字符串:switch语句不再只限于整型和...
- **IEEE Transactions on Parallel and Distributed Systems (TPDS)** - 出版社:IEEE - 官网链接:[http://dblp.uni-trier.de/db/journals/tpds/](http://dblp.uni-trier.de/db/journals/tpds/) - TPDS致力于...
5. **TPDS (IEEE Transactions on Parallel and Distributed Systems)** - 出版社: IEEE - 网址: [http://dblp.uni-trier.de/db/journals/tpds/](http://dblp.uni-trier.de/db/journals/tpds/) - **简介**: ...
* V2.0.6:添加了parallel processing功能,提高了影像处理速度。 * V2.1.0:添加了Look Up Tables功能,支持summer / winter / rural / water atmospheric conditions。 * V2.2.1:添加了automated ozone ...
1. **Lambda表达式**:这是JDK 8最显著的新特性,允许开发者以更简洁的方式编写匿名函数,提高了代码的可读性和可维护性。Lambda表达式可以作为参数传递给方法,也可以用作方法的返回值。 2. **函数式接口**:为了...
1. **依赖管理和版本控制**:Gradle 使用Groovy或Kotlin DSL(领域特定语言)来定义项目依赖。在`build.gradle`文件中,开发者可以声明项目所需库的版本,并通过`dependencies`块管理它们。例如,添加Java库依赖可以...
1. **DPD(Distributed and Parallel Databases)** - **出版社**:Springer - **简介**:DPD 关注分布式与并行数据库系统的设计与实现,包括并行查询处理、分布式事务管理等。 - **网址**:...
Google Chrome浏览器增强版,采用原版加入shuax便携式Dll劫持补丁打包而成,Chrome++增强软件模块,强制实现flash插件支持,解除Adobe Flash Player...chrome://flags/#enable-parallel-downloading //改为Enabled开启
TPDS (IEEE Transactions on Parallel and Distributed Systems)** - **简介**:专门针对并行与分布式计算技术的研究成果,涵盖了从理论到实践的多个方面。 - **网址**:[IEEE TPDS]...
Parallel Ports and Printers. Serial Ports and Modems. Network Adapters and LANs. CMOS RAM and Realtime Clock. Keyboard. Mice and Other Pointing Devices. The Power Supply. Documentation....
1. **Lambda表达式**: Java 8引入了Lambda表达式,这是一种简洁的匿名函数表示方式,允许将函数作为一个对象传递。这使得处理集合和并行编程变得更加简单和高效,尤其是在Stream API中。 2. **Stream API**: Stream...
TPDS (IEEE Transactions on Parallel and Distributed Systems) - **简介**:TPDS是IEEE出版的关于并行与分布式系统的专业期刊,主要发表该领域的最新研究成果。 - **出版社**:IEEE - **网址**:...
资源分类:Python库 所属语言:Python 资源全名:parallel_wget-0.0.6-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
**1. JDK 8的关键特性** - **Lambda表达式**:JDK 8引入了Lambda表达式,这是一种简洁的编写函数式编程风格的方式,使得代码更简洁,易于理解和维护。Lambda表达式可以作为方法参数,也可以作为返回值。 - **默认...
3. **多线程并发工具**:如`ForkJoinPool`和`Parallel Streams`,提高了多核处理器上的并行计算性能。 4. **动态类型语言支持**:如Groovy、Scala等,可以通过JRuby或Jython支持动态语言。 5. **字符串改进**:如`...
资源分类:Python库 所属语言:Python 资源全名:python-wd-parallel-0.0.1.macosx-10.7-intel.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059