当前位置:数据库 > Oracle >>

hibernate ORACLE数据库 SEQUENCE主键 批量插入时速度慢

每次session.save时 都会执行select Tf45_NUM.nextval from dual 去读序列.我猜测是HIBERNATE为了填充主键(我的猜测) 批量保存时速度很快 基本一瞬间就完成了 现在保存3000条数据 很卡很卡 大部分时间都浪费在 select Tf45_NUM.nextval from dual 这句话上了有什么好办法吗
追问:我的设置的是100 貌似跟这个没关系吧 sequence的cache是用完了再扩充上限 但我这边还是一个一个往里加的您好我明白您的意思 因为我是远程访问数据库所以 网络原因导致 select test_num.nextval from dual这个动作已经不能忽略了 而占到了绝大多数的耗时比例 具体执行这句话后数据库如何分发序列 那时间损耗 我完全可以接受的 现在我的目的就是如何避免 每次在session.save()时 执行select test_num.nextval from dual 而是直接在做插入时 insert into table1 values(test_num.nextval,?,?)这样 避免一次不必要的查询
答案:那你可以通过手动指定填充主键,不要用hibernate的自增主键方式,可以自己通过程序来控制主键的增长策略
其他:将序列号的 cache  调大一些。

比如100

默认是20

看你的是多少? 

上一个:oracle在一个机器上建立2个数据库。需要建立几次监听
下一个:在oracle数据库中,需要临时创建一个表来使用,能否将该表创建在临时表空间中?

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,