天天看点

通过图表分析oracle的parallel性能

并行特性在数据库里对于性能的提升很有帮助,尤其是大批量的数据处理。今天对于并行的性能情况进行了简单的图表分析。

为了能够比较合理的比较数据,对数据库里的2张大表进行了比对分析。

测试的场景有以下两个。

1.并行生成dump文件,比如一个大表有100G,使用并行,并行度为50 ,那么很可能会生成50个dump文件,每个dump文件基本控制在2G左右。

2.使用并行做数据的append insert. 比如已经生成了50个dump文件,每个dump文件2G,那么做并行插入的时候(dump数据还是一个一个插入,但是每次插入数据启用并行度为 8)

--》并行生成dump文件。

首先来看看总体的速度,采用并行后速度还是很可观的。生成12G左右的dump文件,花费的时间在14秒~21秒

按照这个速度,每秒的速度在571M~857M的范围内,是相当快的。

使用两个表MEMO和CHARGE,

CHARGE...                                     Elapsed: 00:00:14.37 

MO1_MEMO...                                   Elapsed: 00:00:21.88

表memo 

采用并行,并行度最高64,生成了64个dump文件。Y坐标是dump文件的字节数。可以看到表memo dump文件基本都在200M~250M左右。启用并行生成的数据也是比较平均的。

通过图表分析oracle的parallel性能

--表charge

在来看charge表。数据也是比较平均的。都在150M左右

通过图表分析oracle的parallel性能

--数据量并行分析

对于生成的dump文件,大小基本是平均的,但是对于里面包含的数据量情况还是有一些变化的,通过这个分析可以基本得到表里的数据情况,发现潜在的碎片等问题

表MEMO 

对于memo,可以发现会有几个dump文件的数据量有明显的降低,数据量大多保持在80-90玩左右。有几个dump文件只包含10万条数据左右,但是dump文件还是在200M左右。可能含有碎片等,需要做进一步的排查。

通过图表分析oracle的parallel性能

对于CHARGE表。数据分布基本在30万到60万左右摆动。数据的分布有一定的浮动。

通过图表分析oracle的parallel性能

--》数据的的append Insert

做数据的插入时,可以看到memo表的大体的趋势是时间会有一定的延长。个别dump因为数据量减少,时间可能会短一些,但是趋势还是随着dump的数据逐渐并行插入,时间会有一定的提升。可能会有1.5-2倍的时间差。

通过图表分析oracle的parallel性能

为了验证这一点,来看看charge表的情况,起初速度还保持在30秒,但是稍候会有主键的提升。基本到了60-70秒的样子,

通过图表分析oracle的parallel性能

所以综上所述,并行在日常工作中还是有很大的优势的,可以极大的缩短一些工作时间,在数据的抽取中使用parallel,速度是很客观的。

在数据的插入过程中,可能随着dump文件的个数增长,数据的插入性能会有一定的降低,但是都在可控范围内。