Oracle 并行Parallel实际使用效率

我们所知的Oracle数据库的一个优点就在于其强大的性能和强大的数据处理方式,
以至于其占比在整个数据库软件中居高不下的一点,
这其中一点就是其所能够使用命令调节多进程多线程来给语句分配资源调节查询效率
(小编不外乎被这种及其及其及其…(N遍)…人性化的神奇功能给折服了)。

步入正题,这次来体验一下Oracle 中的并行参数PARALLEL 如何使用与使用起来后它的效果是怎样的。
首先来翻译一下这个英文的意思:
翻译出来的结果是这样的

parallel
adj.
平行的;极相似的;同时发生的;相应的;对应的;并行的
n.
(尤指不同地点或时间的)极其相似的人(或情况、事件等);相似特征;相似特点;(地球或地图的)纬线,纬圈
v.
与…相似;与…同时发生;与…媲美;比得上
adv.
平行地,并列地

好了,在小编的语言字典上又增加了一个英文字母。
那么,翻译完就明白了这个英文单词的含义是代表的什么意思。
在Oracle数据库中使用其来并行语句提高语句的查询效率
jiuxiangzheyang像这样有效率
就像图片这样。。。

这里是别的老哥发的Oracle的官方说明:

Parallel execution enables the application of multiple CPU and I/O resources to the execution of a single database operation.
 It dramatically reduces response time for data-intensive operations on large databases typically associated with a decision support system (DSS) and data warehouses. 
 You can also implement parallel execution on an online transaction processing (OLTP) system for batch processing or schema maintenance operations such as index creation.
 Parallel execution is sometimes called parallelism. Parallelism is the idea of breaking down a task so that, instead of one process doing all of the work in a query, many processes do part of the work at the same time.
 An example of this is when four processes combine to calculate the total sales for a year, 
 each process handles one quarter of the year instead of a single process handling all four quarters by itself. 
 The improvement in performance can be quite significant. Parallel execution improves processing for:
    
    Queries requiring large table scans, joins, or partitioned index scans       
    Creation of large indexes        
    Creation of large tables (including materialized views)        
    Bulk insertions, updates, merges, and deletions  

并行执行允许将多个CPU和I/O资源应用于单个数据库操作的执行。
它极大地缩短了对大型数据库(通常与决策支持系统(DSS)和数据仓库相关联)的数据密集型操作的响应时间。
您还可以在联机事务处理(OLTP)系统上实现并行执行,以进行批处理或模式维护操作,例如创建索引。并行执行有时称为并行。
并行性是分解一个任务的思想,因此,不是一个进程完成查询中的所有工作,而是许多进程同时完成部分工作时间到了例如,
当四个过程结合起来计算一年的总销售额时,每个进程处理一年中的一个季度,而不是一个进程自己处理全部四个季度。
性能上的改进是相当显著的。并行执行改善了以下方面的处理:

需要大表扫描、联接或分区索引扫描的查询
创建大索引
创建大型表(包括物化视图)
批量插入、更新、合并和删除

然后我们来结合百度翻译出来的意思理解这句话,就是说:“parallel 这个功能可以将硬件的CPU、I/O资源全部分配给你需要执行的某个语句,以比该语句高出’N’倍的资源消耗概率来增加该语句的数据分析回显时间和效率。”
那么这句话理解出来意思后它的副作用就也相当明显的暴露了,在生产环境中数据库语句占用多少硬件资源就会给其他人带来多大的影响。
(并行虽爽,也不要盲目的任其爽,否则影响日常运行被问罪的就是自己。)

我们都知道,在数据库执行语句的过程中,如果缓存(非第一次执行该语句)有该条语句会比没有(第一次执行该语句未记录在缓存)该条语句运行效率快,所以本人需要写一条新的语句加上parallel来第一次执行,然后再去掉parallel这个参数查看一下该语句已经缓存的运行效率,来对比一下调用多并发的效率和未调用多并发在时间上的差别~~~~~~~~ END
Oracle
Parallel 语句格式:

SELECT  
/*+ parallel(table_name , 调用进程数)*/COUNT(*)   --在COUNT前是没有标点符号的
FROM TABLE_NAME;

下面是我调用多并发后的语句运行时间
多并发调用时间
下面是我已经缓存过该语句运行的运行时间
在这里插入图片描述
可以看到差别还是有的 虽然不是很明显(因为表中有索引影响),但是能明显区别两条语句的运行时间。

关于并行,还是上面那句话
(并行虽爽,也不要盲目的任其爽,否则影响日常运行被问罪的就是自己。)
BUT
(有时候并行也不一定比缓存后的语句输出结果快,所以并行不是在所有的时候都会有效率,这一点要注意)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值