操作Oracle 11 大问题。头疼中。。。帮忙啊

慢慢爬 发布于 2011/08/25 15:10
阅读 525
收藏 0
最近接了个不爽的差事,用到了我很不熟悉的 Oracle数据库。 
直接表述我的问题吧:
底层用Hibernate操作数据库,发现插入数据特别耗时而且慢
数据量大概在10W+..................
向大家请教下 大数据量 的 数据库操作经验。
有什么优化方案吗 各位 老大

以下是问题补充:

@慢慢爬:各位老大 我补充说明下,10W只是估计量,这个量有可能会大于该值很多的 (2011/08/25 15:47)
加载中
0
鉴客
鉴客

一次插入 10w 慢,还是表里有 10w 记录,插入一条慢?

慢慢爬
慢慢爬
是一次插入10万
0
烈冰
烈冰
分多个事务插入,比如一个事务插入5千条
CheckStyle
CheckStyle
@烈冰 : 确实很小的数据,现在不像以前,现在, 插入N百万,读取上亿,才算海量数据
慢慢爬
慢慢爬
嗯 ~听取意见,多谢
烈冰
烈冰
@慢慢爬 : 其实10w数据很少的,没必要多线程
慢慢爬
慢慢爬
嗯 正考虑 多用几个线程操作呢又怕。。。。。。
0
慢慢爬
慢慢爬

引用来自“鉴客”的答案

一次插入 10w 慢,还是表里有 10w 记录,插入一条慢?

是一次插入10万
0
ddatsh
ddatsh

sqlldr 呗

或者用DUMP喽?

0
scl33
scl33
批量插入, 减少开启事物和获取连接, 以及数据库解析SQL的次数...
慢慢爬
慢慢爬
恩 目前 在 测试中。重写底层老代码。
0
scl33
scl33
这样大数据量插入, 能否跳过hibernate, 直接JDBC, preparedStatement, 能调存储过程插入的话更好, oracle的FORALL i in 1..params.count EXECUTE IMMEDIATE 'insert/update/delete...' USING params (i)  RETURNING BULK COLLECT INTO result 结构相当给力啊, 10万条也就1分钟左右
0
鉴客
鉴客

一次插入 10w 最好还是别用程序来搞了

0
黑人牙膏
黑人牙膏

得先关闭索引,插完之后重启索引

0
再见理想
再见理想

10万数据单次写入出现在业务系统中本来就是设计缺陷,对资源严重消耗.
在分析系统中,如果是ETL过程,还是调存储过程的好.

0
返回顶部
顶部