select a.sfzmhm,b.dmsm1,a.LJJF,a.YXQZ,a.CFRQ,a.QFRQ from DRV_DRIVER a,vio_code b where 1=1 and a.sfzmhm = '370721197311107370' and a.dabh = '370700352486'  and b.dmz=(select zt from drv_driver where sfzmhm='370721197311107370')  and b.dmlb='25'================
drv_driver视图有几百万行数据

解决方案 »

  1.   

    不要查视图,直接查表,缩小范围啊,表上的对应字段建索引
    普通视图对性能不会有提升,最后还是会把视图的select语句拿到你这个sql里面来替换的。
      

  2.   

    b.dmz=(select zt from drv_driver where sfzmhm='370721197311107370')  
    ->>
    b.dmz = a.zt 
      

  3.   

    a.sfzmhm ='370721197311107370' and a.dabh = '370700352486'
    这两个条件放where的最后。
      

  4.   

    select a.sfzmhm,b.dmsm1,a.LJJF,a.YXQZ,a.CFRQ,a.QFRQ from DRV_DRIVER a,vio_code b,drv_driver c where 1=1 and a.sfzmhm = 
    '370721197311107370' and a.dabh = '370700352486'  and b.dmz=c.zt and  c.sfzmhm='370721197311107370'  
    and b.dmlb='25' 
      

  5.   

    或者不用视图drv_driver,而是用视图里面的基本表