oracle大批量数据统计,加速Oracle大批量数据处理的2个好用方案
其實加速Oracle大批量數據處理并不困難,你選擇的實際應用方案很重要,以下的文章主要是對解決加速Oracle大批量數據處理的2個方案的介紹,即,提高DML操作的辦法還有各種批量DML操作。
一、加速Oracle大批量數據處理的方法之一,提高DML操作的辦法:
簡單說來:
1、暫停索引,更新后恢復.避免在更新的過程中涉及到索引的重建.
2、批量更新,每更新一些記錄后及時進行提交動作.避免大量占用回滾段和或臨時表空間.
3、創建一臨時的大的表空間用來應對這些更新動作.
4、批量更新,每更新一些記錄后及時進行提交動作.避免大量占用回滾段和或臨時表空間.
5、創建一臨時的大的表空間用來應對這些更新動作.
6、加大排序緩沖區
alter?session?setsort_area_size=100000000;
insert?into?tableb?select?*?from?tablea;
commit;
如果UPDATE的是索引字段,就會涉及到索引的重建,暫停索引不會提高多少的速度,反而有可能降低UPDATE速度,
因為在更新是索引可以提高數據的查詢速度,重建索引引起的速度降低影響不大。
Oracle優化修改參數最多也只能把性能提高15%,大部分都是SQL語句的優化!
update總體來說比insert要慢 :
幾點建議:
1、如果更新的數據量接近整個表,就不應該使用index而應該采用全表掃描
2、減少不必要的index,因為update表通常需要update index
3、如果你的服務器有多個cpu,采用parellel hint,可以大幅度的提高效率
另外,建表的參數非常重要,對于更新非常頻繁的表,建議加大PCTFREE的值,以保證數據塊中有足夠的空間用于UPDATE, 從而降低CHAINED_ROWS。
二、加速Oracle大批量數據處理之二各種批量DML操作:
(1)、Oracle批量拷貝:
set?arraysize?20
set?copycommit?5000
copy?from?username/password@Oraclename?append?table_name1
using?select?*?from?table_name2;
(2)、常規插入方式:
insert?into?t1?select?*?from?t;
為了提高速度可以使用下面方法,來減少插入過程中產生的日志:
alter?table?t1?nologging;
insert?into?t1?select?*?from?t;
commit;
(3)、CTAS方式:
create?table?t1
as
select?*?from?t;
為了提高速度可以使用下面方法,來減少插入過程中產生的日志,并且可以制定并行度:
create?table?t1?nologging?parallel(degree?2)?as?select?*?from?t;
上述的相關內容就是對加速Oracle大批量數據處理的方案描述,希望會給你帶來一些幫助在此方面。
【編輯推薦】
【責任編輯:孫巧華 TEL:(010)68476606】
點贊 0
總結
以上是生活随笔為你收集整理的oracle大批量数据统计,加速Oracle大批量数据处理的2个好用方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php点击按钮变文字,点击按钮文字变成i
- 下一篇: php对字符串进行编码,PHP如何使用c