我的程序,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吗?到底该怎么办呢,请大家帮我。
解决方案 »
- SQL调优问题(工作需要救急,急,急,急)
- vs2010连接oracle出错
- 插入多行数据的问题
- Oracle 查询返回DataSet 数据大量重复
- plsql创建存储过程的疑问
- 运行SQLLDR工具是不是必须安装ORACLE?
- 有经验的大虾,进来看看这个问题怎么解决!!
- 第一次安装10g到最后提示:ORA-28547连接服务器失败,可能是NET8管理错误。
- update use_name set login_time=getTime() where name='admin';错在哪里啊?
- 请问哪里可以找到oracle的错误代码
- 请问ORACLE中有关于取农历得函数或是方法吗?
- 求一sql语句,有经验的过来看看
需要在一个BeginTrans和CommitTrans之内比如 银行取款需要把 ATM吐钱 和在你的帐户减去你取得钱和ATM减去你取得钱,
应该放在一个事务里面