用控件adoquery执行职下查询:
   with adoquery do
      begin
             clsoe;
             sql.clear;
             sql.add('select * from sign_staff');
             open;
      end;
   表sing_staff中有记录上十万条,查询出来大概要发5分钟,cpu占有率100%,该怎样解决?

解决方案 »

  1.   

    在数据库上建立索引或是优化SQL语句   select column1,column2 from sign_staff
      

  2.   

    给sign_staff建立主键索引!
    另外,如果有可能的话,可以在平时加入一些存储过程对sign_staff进行处理,得到另外的一些临时表,保存你最终想要的结果的一些中间值。比如:月数据统计可以分开先统计周的,然后月的再在周里面查询。
      

  3.   

    1. 在SQL语句中尽量指明要取得结果的字段, 减少查询和传输的数据量
    2. 没有必要把所有数据一次性装载显示给客户看, 可以考虑分页显示, 用程序过程只取要出要显示页的数据
      

  4.   

    偶遇到同样的问题,占座study
      

  5.   

    先取一部分数据下来select top 1000 * from oldbook