关于并行执行(parallel executing)的认识

Parallel Execution,主要应用与OLAP系统中提高执行效率。PX的执行机制是当发起一个并行操作时,创建一个进程如QC,协调并行服务器进程的信息传递,并行协调进程将需要操作的数据集按照并行执行数分成若干单元,并将数据单元分别分给并行服务器进程进行处理,处理完毕后,将结果集传递给并行协调进程,并行协调进程将结果集汇总反馈给用户。

并行服务器进程数量

Oracle启动是会根据参数文件中的parallel_min_servers参数创建进程数量,当并行服务器进程不足时,再创建新的并行服务器进程,最大分配数量为parallel_max_servers。至于一条语句的使用多少并行服务器进程,取决于该语句执行的操作,查询后需要排序,则使用的数量需要乘2,以此类推。

在一个系统中出现严重的等待事件"PX Deq Credit: send blkd",在ID 271767.1中,将该事件有时称为是一个正常的等待事件,需要根据情况具体分析。

This is considered as idle wait event.You should investigate the sender (decode the senderid).In same cases it is normal that we see high waits on "PX Deq Credit: send blkd".

An example: We do a select from a large table in parallel.
select /*+ parallel(sales, 10) +/ * from sales)
Than you see a lot of waits for "PX Deq Credit: send blkd" in the slave traces. All slaves wait for the QC to get back the credit bit. The QC can not dequeue fast enough the rows from the slaves, beause there are to many slaves that send rows back to the QC. In this case it is normal。

Parallel Query Wait Events (文档 ID 191103.1)

WAITEVENT: "PX Deq Credit: send blkd" (文档 ID 271767.1)

关于并行执行(parallel executing)的认识,布布扣,bubuko.com

时间: 2024-10-31 09:02:42

关于并行执行(parallel executing)的认识的相关文章

可重入与线程安全

看了好多文章,觉得这俩概念很容易混淆.在这里先总结一下自己的理解. 维基百科对可重入的定义是:  若一个程序或子程序可以"安全的被并行执行(Parallel computing)",则称其为可重入(reentrant或re-entrant)的. 可重入的概念是在单线程操作系统的时代提出的.可重入会影响函数的外部接口,而线程安全只关心函数的实现. 可重入函数未必是线程安全的,线程安全的函数也未必是可重入的.例如: 例1: 一个函数打开某个文件并读入数据.这个函数是可重入的,因为它的多个实

ReentrantLock可重入锁的使用场景(转)

摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些. 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a.用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发.b.用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发). 以上两种情况多用于进行非重要任务防止重复执行,(如:清除无用临时文件,检查某些资源的可用性,数据备份操作等) ? 1 private Reent

Java 锁的学习

个人学习整理,所有资料均来源于网络,非原创. 死锁的四个必要条件:互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用.请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源.一个进程因请求资源而阻塞时,对已获得的资源保持不放.非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺.循环等待条件(Circular wait):系统中若干进程组成环路,该环路中每个进程都在等待相邻进程正占用的资源. 不难看出

可重入和线程安全简单介绍

可重入和线程安全 可重入和线程安全这两个术语,经常出现在计算机编程中,用于指明类和函数在多线程程序中的使用. 可重入:若一个程序或子程序可以“安全的被并行执行(Parallel computing)”,则称其为可重入(reentrant或re-entrant)的. 若一个函数是可重入的,则该函数: 1.不能含有静态(全局)非常量数据. 2.不能返回静态(全局)非常量数据的地址. 3.只能处理由调用者提供的数据. 4.不能依赖于单实例模式资源的锁. 5.不能调用(call)不可重入的函数. 线程安

ReentrantLock可重入锁的使用场景

摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些. 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a.用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发.b.用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发). 以上两种情况多用于进行非重要任务防止重复执行,(如:清除无用临时文件,检查某些资源的可用性,数据备份操作等) ? 1 private Reent

C++11 之 并发编程 (一)

未来芯片制造,如果突破不了 5nm 极限,那么在一段时间内 CPU 性能的提升,会依赖于三维集成技术,将更多的 CPU 核集成在一起,使得多核系统越来越普遍. 以前所谓的 C++ 多线程,一是受限于平台,多借助于封装好的 APIs 来完成,例如:POSIX threads,Windows threads 等:二是受限于单核系统,本质上都是“伪多线程”,通过线程的调度,使得单核系统可进行任务的切换,造成多线程的假象. 新的 C++11 标准,在语言层面上实现了多线程,其库中提供了相关组件,使得跨平

Java 重入锁 ReentrantLock

本篇博客是转过来的. 但是略有改动感谢 http://my.oschina.net/noahxiao/blog/101558 摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些. 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a.用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发. b.用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发). 以上两种情况多用

java ReentrantLock可重入锁的使用场景

摘要 从使用场景的角度出发来介绍对ReentrantLock的使用,相对来说容易理解一些. 场景1:如果发现该操作已经在执行中则不再执行(有状态执行) a.用在定时任务时,如果任务执行时间可能超过下次计划执行时间,确保该有状态任务只有一个正在执行,忽略重复触发.b.用在界面交互时点击执行较长时间请求操作时,防止多次点击导致后台重复执行(忽略重复触发). 以上两种情况多用于进行非重要任务防止重复执行,(如:清除无用临时文件,检查某些资源的可用性,数据备份操作等) [java] view plain

GNU Parallel: 并行执行Linux命令

今天在Stack Overflow上看到一个很有趣的问题, 问题的大意是: 需要用一个脚本处理一个文本文件, 但这个文本文件可能很大, 由于处理脚本的问题, 希望每次能够只处理该文本文件的若干行, 就像 xargs 一样, 而且不能使用split来分割文件, 也不允许生成临时文件. 如果允许使用临时文件的话, 那么用bash script并不难实现, 若不能使用临时文件, 那么可以使用GNU Parallel工具来实现. 实现的方法如下: cat giantfile.txt | parallel