我的程序,VB6+ORACLE8.1.7,客户端30多个,昼夜两班不停的操作,大多数操作都是update一条记录或insert一条记录,现在我是直接update或insert,程序运行很慢,看网上文章说这是因为数据库更新操作没有使用事务处理,每次Update操作都会引起数据库写盘一次。应该使用BeginTrans及CommitTrans,使用事务处理后,更新只在内存缓冲区内进行,执行CommitTrans时才将所有修改一次写回到磁盘中。
我想问的是把BeginTrans及CommitTrans写在VB程序的哪儿合适呢?如果每次UPDATE前BeginTrans,UPDATE后立刻CommitTrans那不就跟没有用它们一样了? 如果在程序进入后连接上oracle数据库时就BeginTrans直到程序退出时再CommitTrans,我又担心这么多机器不停的UPDATE回滚段会不够用,并且一般半小时左右一些机器会用到另一些机器刚INSERT进去的数据,前面的机器不提交,那后面的机器能查到相关数据来UPDATE吗?到底该怎么办呢,请大家帮我。
我想问的是把BeginTrans及CommitTrans写在VB程序的哪儿合适呢?如果每次UPDATE前BeginTrans,UPDATE后立刻CommitTrans那不就跟没有用它们一样了? 如果在程序进入后连接上oracle数据库时就BeginTrans直到程序退出时再CommitTrans,我又担心这么多机器不停的UPDATE回滚段会不够用,并且一般半小时左右一些机器会用到另一些机器刚INSERT进去的数据,前面的机器不提交,那后面的机器能查到相关数据来UPDATE吗?到底该怎么办呢,请大家帮我。
解决方案 »
- key构成与记录个数的关系!
- Oracle Sql语句性能
- ORACLE 数据从10.2导入到8.1.7
- 痛苦啊,俺的win2k一启动到进度条将要结束就马上出现:Stop:c000026c unkonw hard error!!
- logminer问题 ,,请大虾指教
- ******** oracle 有没有监听时间触发事件的功能?
- 请教连接oracle字符串的问题
- Oracle Enterprise Management Console里面找不到数据库
- 学习oracle需要有什么基础?想做oracle系统管理
- oracle8 sql plus问题
- 请问ORACLE中有关于取农历得函数或是方法吗?
- 求一sql语句,有经验的过来看看
需要在一个BeginTrans和CommitTrans之内比如 银行取款需要把 ATM吐钱 和在你的帐户减去你取得钱和ATM减去你取得钱,
应该放在一个事务里面