其實(shí)加速Oracle大批量數(shù)據(jù)處理并不困難,你選擇的實(shí)際應(yīng)用方案很重要,以下的文章主要是對(duì)解決加速Oracle大批量數(shù)據(jù)處理的2個(gè)方案的介紹,即,提高DML操作的辦法還有各種批量DML操作。 一、加速Oracle大批量數(shù)據(jù)處理的方法之一,提高DML操作的辦法: 簡(jiǎn)單說(shuō)來(lái): 1、暫停索引,更新后恢復(fù).避免在更新的過(guò)程中涉及到索引的重建. 2、批量更新,每更新一些記錄后及時(shí)進(jìn)行提交動(dòng)作.避免大量占用回滾段和或臨時(shí)表空間. 3、創(chuàng)建一臨時(shí)的大的表空間用來(lái)應(yīng)對(duì)這些更新動(dòng)作. 4、批量更新,每更新一些記錄后及時(shí)進(jìn)行提交動(dòng)作.避免大量占用回滾段和或臨時(shí)表空間. 5、創(chuàng)建一臨時(shí)的大的表空間用來(lái)應(yīng)對(duì)這些更新動(dòng)作. 6、加大排序緩沖區(qū)
如果UPDATE的是索引字段,就會(huì)涉及到索引的重建,暫停索引不會(huì)提高多少的速度,反而有可能降低UPDATE速度, 因?yàn)樵诟率撬饕梢蕴岣邤?shù)據(jù)的查詢速度,重建索引引起的速度降低影響不大。 Oracle優(yōu)化修改參數(shù)最多也只能把性能提高15%,大部分都是SQL語(yǔ)句的優(yōu)化! update總體來(lái)說(shuō)比insert要慢 : 幾點(diǎn)建議: 1、如果更新的數(shù)據(jù)量接近整個(gè)表,就不應(yīng)該使用index而應(yīng)該采用全表掃描 2、減少不必要的index,因?yàn)閡pdate表通常需要update index 3、如果你的服務(wù)器有多個(gè)cpu,采用parellel hint,可以大幅度的提高效率 另外,建表的參數(shù)非常重要,對(duì)于更新非常頻繁的表,建議加大PCTFREE的值,以保證數(shù)據(jù)塊中有足夠的空間用于UPDATE, 從而降低CHAINED_ROWS。 二、加速Oracle大批量數(shù)據(jù)處理之二各種批量DML操作: (1)、Oracle批量拷貝:
(2)、常規(guī)插入方式:
為了提高速度可以使用下面方法,來(lái)減少插入過(guò)程中產(chǎn)生的日志:
(3)、CTAS方式:
為了提高速度可以使用下面方法,來(lái)減少插入過(guò)程中產(chǎn)生的日志,并且可以制定并行度:
上述的相關(guān)內(nèi)容就是對(duì)加速Oracle大批量數(shù)據(jù)處理的方案描述,希望會(huì)給你帶來(lái)一些幫助在此方面。 |
|
來(lái)自: 168一路發(fā) > 《優(yōu)化》