项目中用到一个存储过程,里面主要是一条语句,select * from table,这个table 中大概有2W多条数据,60多个字段,是一些用户信息,每次客户端登录时要调用,原来 的效率太慢,要10多S完成这个过程,然后我优化成 把 * 改成 最重要的20多个字段 ,完成这个过程也要7s-9s左右,不过还是不够理想,如果继续优化成取10个左右的字段,效率提高 怎么样?还有其它的方法吗?达人指点下!

解决方案 »

  1. 补充下,这张table中数据量还是挺大的,这条语句后有一个判断,where xx= ‘xx’,一般符合的大概有2-3W条左右
      


  2.    select top 10 * from table
      

  3. 什么数据库,在ORACLE中,你的WHERE条件是不是索引,这相字段数据重复多不多,试用提示(HINTS)....
      

  4. 是ORACLE中。。客户端是delphi写的,登录时调用webservices,因为某些原因,要获取符合条件的全部数据,接口的实现就是调用 这个存储过程,问题前面我已经说了
      

  5. 存储过程怎么写的,在sqlplus下执行存储过程,速度是多少。
    看看存储过程中的查询语句,看看执行计划
      

  6. 我想问的是,我用select * from table 和 select 字段 from table,table中有60多个字段 ,我只取10个字段或者20个字段,这个效率会有多少提高,我目前是在测试环境中,数据量不足,测试效果不明显,去正式环境试的话比较麻烦, 不知道大家能不能明白我的意思
      

  7. 请看我的博文:
    http://blog.csdn.net/pathuang68/archive/2009/04/16/4084116.aspx
    应该会对你所有帮助
      

类似问题 »