原来是使用QUERY的。但是,为了能够使用户可以在DBGRID中直接修改数据,所以将DBGRID改成TABLE。问题来了。
  更改后打开一个300条记录的表居然要6秒钟,而原来使用QUERY时几乎感觉不到停顿。
  数据库     ORACLE 7.3.4
  开发工具   Delphi 5.0  查了半天,发现下面这条SQL运行时间超长。而且这是使用TABLE时才有的。select s.owner, s.table_owner, s.table_name, o.object_type 
  from sys.dba_synonyms s, sys.dba_objects o 
 where s.synonym_name = 'CUX_INT_CC' 
   and s.owner in ('PUBLIC', 'APPS') 
   and s.table_owner = o.owner 
   and s.table_name = o.object_name   哪位大侠帮帮忙呀。

解决方案 »

  1.   

    开发数据的时候不要用table,,最好不要用, 一个都不要用。
      

  2.   


    用ADO吧~~~另外最好给表建个索引,
      

  3.   

    不是把,我这里都是用BDE的。要改的话工作量很大的。难道不能使用QUERY,并且使DBGRID可修改?
      

  4.   

    将QUERY1的REQUESTLIVE=TRUE,在DBGRID中即可修改。
      

  5.   

    呵呵!你用的数据库和Delphi版本居然和我的一样!将Query1的Requestlive设为True是不行的,这对文本型数据库才有用
    对于既要使用Table又要查询我通常都是用的Table的
    procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
      var Accept: Boolean);
    beginend;
    将纪录过滤,不知道你是不是这么做的
    还有就是你将Sql语句加一个Order by ...试一下,看是不是能快些.
      

  6.   

    TQuery.CachedUpdates := True;
    然后使用ApplyUpdates.