本帖最后由 dy3364cs 于 2013-03-22 09:56:11 编辑

解决方案 »

  1.   

    刚接触数据库,请各位高手指点
    1、每更新一条记录,去commit一次,这种情况的死锁应该是不会发生了,但是频繁去提交,似乎。
    2、大量数据,循环中频繁更新数据表,这里有可改进的地方吗,怎么改进?
      

  2.   


    Oracle Pro*C支持标准SQL定义的事务。一个事务是一组SQL语句集合,Oracle把它当作单独的单元运行。一个事务从第一个SQL语句开始,遇到"EXEC SQL COMMIT"(执行当前事务对数据库的永久修改)或"EXEC SQL ROLLBACK"(取消从事务开始到当前位置对数据库的任何修改)时结束事务。当前事务由COMMIT或ROLLBACK语句结束后,下一条可执行SQL语句将自动开始一个新事务。 你的意思是每次循环都去提交?频繁提交没问题?
      

  3.   

    这是目前的操作:
    EXEC SQL UPDATE A 
    set count = count + 1,value = value + n   (两个统计字段)
    WHERE x= :x and y= :y and m= :m and n= :n;(x,y,m,n为主键)每一次循环根据四个条件对对应的统计字段做加法。
    我想在两个或一个循环完成后统一更新,pro*c编程中怎么去实现这个批量更新呢?