SELECT  A.a1,        
            B.b1 
        FROM  A,
              B
        WHERE A.a1 = B.a1;           a1为表A的主键,由于A表记录太多,全部缓存完所查询出的记录需要很长时间,显示到前后给用户造成查询太慢的感觉。
我该如何处理?这查询还可如何进一步优化?另外,查询结果能不能在还没缓存完的情况下先在前台部分显示出来?

解决方案 »

  1.   

    我的理解:
      
       在A表的主键a1上建索引(建议使用组合索引);   绑定变量(软解析),即查询条件不写死:where column=:1,不要写成where column='1';   其它那些什么模糊、null、in、<> 、or使用不当(左右两边一字段没索引,
       另一字段有索引)等引起全表扫描的sql就省省;   最主要的是先将A表适合条件的记录查出来,然后再left join B表   
       
       
      

  2.   

    这时间是怎么得到的?如果是在查询前后用显示系统时间的方法得出的话,
    那只能用分页查询了B表的主键是a1 吗?
    A、B表到底有多少数据啊,要那么久是什么程序调用的检索,还是直接在SQLPLUS里执行的?