我的一个软件,调数据时第一次打开数据表时(ADOQUERY)用很短的时间,而第二次时间特别长,以后就一直是第二次的速度了,为什么?

解决方案 »

  1.   

    調用同樣的SQL?? 這只會更快吧
      

  2.   

    怎么说呢,很简单的一句SELECT,就是第二次打开就很慢, 我好像有点开窍了,我回去看看查询慢的时候,是不是因为SELECT
      

  3.   

    会不会是加了些无用的处理代码,你把你的select 改有10条数据以下的代码的表看下时间有没有区别!
      

  4.   

    如果SQL語句相同,應該是執行其他的代碼造成慢的。
      

  5.   

    问题还是调用PROC的时候出的,调三条数据的时间是一样的,但是调多一点明显第二次很慢
      

  6.   

    With Datamodule1.PROC1 do
        try
        close;
        ProcedureName := 'PROC_get_contract';   //指定存储过程名称
        Parameters.Clear;              //清除原有参数
         Parameters.CreateParameter('@conid',ftString,pdinput,50,'') ;    Parameters.CreateParameter('@Stime',ftDateTime,pdinput,10, '2009-01-13');
        Parameters.CreateParameter('@Etime',ftDateTime,pdinput,10,'2009-06-13');
        Open;  
       end;
      

  7.   

    好少用这个,一般我调过程也是用ADOQURE
      

  8.   

    调用数据多了肯定会慢些,你在查询析器里先测试过程二个不同参数下的差异。 PROC这个控件产生的数据集也是返回 RecordSet 这个中间损耗是很小的。 但如果数据集返回的数据太多,一次加载到内存我想慢也是必然的
      

  9.   

    问题找到了,我打开ADOQUERY或者PROC的时候,关了窗体他们还是OPEN状态,所以我丙打开的时候就慢,当然,这些控件在DM单元里,窗体关了它们还是在而且是开着的,现在我FORMCLOSE关的时候把ADOQUERY或者PROC也关了就没事了,谢谢大家