数据库没有优化么?
增加sga

解决方案 »

  1.   

    这个问题很难判断, 首先不知道你的UPDATE语句在多大的表中操作,其次不知道每次更新多少行纪录, 而且ADO更新是及时COMMIT还是延时COMMIT的也不清楚.
    你把以上的情况说明详细一点, 或者你在SQLPLUS中打开时间标记执行一下UPDATE语句,看看每个语句执行需要多少时间, 再和ADO比较一下, 以确定问题出在哪里
      

  2.   

    另外, 用动态UPDATE语句更新每次都要对SQL语句进行编译/执行路径分析等重复工作, 象你这种情况最适合使用存储过程,那样数据库只用编译一次,每次传递不同的参数. 从理论上讲效率会有所提高.
      

  3.   

    我用的是Delphi ADO :ADOConnection := ADOConnection1;
    ADOCommand1.CommandText :='select * from table';
    ADODataSet1.RecordSet := ADOCommand1.Execute;我想用
    ADODataSet1.RecordSet.Open('Select * from table ',ADOConnection1,adOpenStatic,adLockOptimistic,adCmdText);
    ARecordSet1.Fields['date'].value := Mydata ; 
    可程序老提示:对象或提供者不能执行所需的操作!
    为什么会这样啊?我以前做VB也没这么难! 所以只好用1000次Update :( update table set value='xxx' +' where id='+i;存储过程和程序是怎么通信的呢?
      

  4.   

    没用过DELPHI,不知道如何调用存储过程.在VB+ADO模式中,使用COMMAND对象,然后用PARAMETER传递参数就能调用过程了.